2017-01-28 3 views
0

Im ziemlich neu in der Programmierung in Unity ...Unity3D warum multiplizieren Achse mit SPEED?

Also meine Frage ist:

Warum multiplizieren Sie die

Input.GetAxis("VertOrHorz") * speed 

Geschwindigkeit. Weil ich gewohnt war, Dinge mit dem Operator + = oder - = zu bewegen.

Könnte jemand bitte mir einen Gefallen tun und es mir erklären :).

Vielen Dank im Voraus

Jakob

+0

Haben Sie das irgendwo in einem Tutorial gelesen? 'Input.GetAxis()' gibt Ihnen einen Wert im Bereich von [-1, 1]. Wenn du es mit der Geschwindigkeit multiplizierst, ändert sich seine Größe, sodass die angegebene Linie eine Zahl im Bereich [Geschwindigkeit, Geschwindigkeit] ergibt. Mit dieser neuen Nummer könnten Sie es in Verbindung mit 'Transform.Translate()', 'Rigidbody.MovePosition()', usw. verwenden. Vielleicht müssen Sie es vielleicht neu einlesen, wo immer Sie das lesen, damit Sie eine kontextbezogene Erklärung haben. Denn kann nicht der genaue Grund, warum der Autor dies getan hat, nur Spekulation. – Serlite

Antwort

3

Die Input.GetAxis Funktion gibt Werte -1f-1f oder 0f zu 1f. Dieser Wertebereich ist so gering, dass er ein Objekt nicht verschieben kann.

Zum Beispiel wird das Hinzufügen von Kraft zu einem Rigidbody mit einem Wert von 0.5f zurückgegeben von Input.GetAxis nicht in der Lage sein, etwas zu tun.

Durch Multiplikation mit einer anderen Zahl (speed) erhalten Sie eine Zahl, die groß genug ist, um das Objekt tatsächlich zu bewegen.

Wenn Sie etwas tun, die zwischen -1f-1f oder 0f zu 1f eine Reihe erfordert, dann tun Sie nicht Notwendigkeit, den Wert aus der Input.GetAxis Funktion mit einer anderen Zahl zu multiplizieren.