Dies ist ziemlich bizarr; und ich habe keine Ahnung, wie ich das beheben kann.Einheit geht über einen als Grenzwert festgelegten Wert hinaus, wenn das Scrollrad verwendet wird
Ich benutze einen Satz von Limit (Min und Max), um zu wissen, wie stark das Scrollrad eine Kamera hinein- oder herauszoomen kann. Das Problem ist, dass die Kamera stecken bleibt, weil ich festlege, dass der Zoom nur dann stattfinden soll, wenn die y-Position zwischen min und max liegt.
Einheit immer überschwingen, wenn das Mausrad verwendet wird; wenn ich 1.0f setze, und blättern; das Endergebnis endet bei 0,92; und dasselbe gilt, wenn ich ein Maximum von 5.0f einstelle und mit dem Scrollrad über 5.1 hinausschiebe.
Dies führt dazu, dass die Kamera hängen bleibt, weil jetzt der Kamera-Y-Wert über die Grenzen hinaus eingestellt ist, so dass er sich offensichtlich nicht bewegt.
Wie vermeiden Sie eigentlich, dass Unity über die tatsächlichen Grenzen hinausgeht? Diese
ist, was ich benutze
float mouse = Input.GetAxis("Mouse ScrollWheel");
float zoom_speed = 1.0f;
if (transform.position.y <= 3f && transform.position.y >= 1f)
transform.Translate(0, -mouse * zoom_speed, mouse * zoom_speed, Space.World);
Was genau möchten Sie begrenzen? Wie weit bewegt sich die Kamera beim Rollen des Scrollrads? – Programmer
Korrekt; also wird es nicht durch Dinge schneiden. Ich habe eine minimale und maximale Höhe, damit ich kontrollieren kann, wie nah oder wie weit die Kamera ist. –
Ich bin gerade zurückgekommen. Hat Nikas Antwort funktioniert? Ich möchte wissen, ob ich eine Antwort geben muss oder nicht. – Programmer