Wie kann ich drehen Sie ein sprite in Unity 4.3?
Ich möchte drehen Sie ein sprite auf der Szene durch drücken der linken oder rechten Pfeil-Tasten (man denke an das Raumschiff, in Asteroiden).
Ich habe platziert das sprite in Frage, auf die Szene und erstellt ein Skript, aber bin mir nicht wirklich sicher, wo zu gehen, von dort aus.
Mein Aktuelles script sieht so aus:
using UnityEngine;
using System.Collections;
public class RotateLeftRight : MonoBehaviour {
public float speed = 1.0f;
public string axisName = "Horizontal";
//Use this for initialization
void Start () {
}
//Update is called once per frame
void Update () {
if(Input.GetKeyDown(KeyCode.LeftArrow)) {
//left
transform.Rotate(-1.0f, 0.0f, 0.0f); //does nothing, just a bad guess
}
if(Input.GetKeyDown(KeyCode.RightArrow)) {
//right
transform.Rotate(1.0f, 0.0f, 0.0f); //does nothing, just a bad guess
}
}
}
Ich nur kodiert, oben ohne Kenntnis von dem, was passieren würde (und, kaum verwunderlich, scheint nichts zu passieren).
Einen Rat zum drehen des Sprites und die Steuerung der Geschwindigkeit der rotation würde sehr geschätzt werden.
Lesen durch das docs.unity3d.com/Documentation/ScriptReference/... und stellen Sie sicher, dass das Skript zugeordnet ist, um das gleiche Objekt wie Ihre sprite
Ich bin mir 100% sicher, dass das Skript ist im Anhang zu trotz. Ich habe versucht ein paar verschiedene Methoden, die verwandeln erwähnt in den link, den Sie zur Verfügung gestellt, aber ich bin immer noch kein Glück.
versuchen Sie, nur Input.GetKey(KeyCode.LeftArrow) statt getkeydown, das ist, was ich habe und es funktioniert
es sagt in diesem Zusammenhang, dass getkeydown nur das Feuer auf dem Rahmen, der die Taste gedrückt wird, getkey feuert jeden frame docs.unity3d.com/Documentation/ScriptReference/Input.html
Ja, GetKey war eine viel bessere Methode zu nennen. Vielen Dank für den input, auch hier.
Ich bin mir 100% sicher, dass das Skript ist im Anhang zu trotz. Ich habe versucht ein paar verschiedene Methoden, die verwandeln erwähnt in den link, den Sie zur Verfügung gestellt, aber ich bin immer noch kein Glück.
versuchen Sie, nur Input.GetKey(KeyCode.LeftArrow) statt getkeydown, das ist, was ich habe und es funktioniert
es sagt in diesem Zusammenhang, dass getkeydown nur das Feuer auf dem Rahmen, der die Taste gedrückt wird, getkey feuert jeden frame docs.unity3d.com/Documentation/ScriptReference/Input.html
Ja, GetKey war eine viel bessere Methode zu nennen. Vielen Dank für den input, auch hier.
InformationsquelleAutor Sailing Judo | 2013-11-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin nicht in der Lage, um zu versuchen, es mit Unity jetzt, aber meine Vermutung ist, dass es entweder rotierende nur 1º, so sind Sie nicht in der Lage, es zu bemerken, oder drehen 360º, und so ist es wirklich die gleiche bleibt.
Versuchen zu brechen Ihr problem:
transform.Rotate
versuchentransform.Translate(20f, 20f, 20f)
nur um sicherzugehen, es ist die Anerkennung der Eingang;1.0f
wie0.1f
und30.0f
(ich denke, 30.0 f wäre 30, aber ich bin mir nicht sicher);y
undz
stattx
;Rotate(Vector3 axis, float angle)
.Hoffe, es hilft!
Tatsächlich, mit 1 ist in Ordnung. Das einzige, was zählt, ist zu wissen, um die X -, Y-und Z-Achse, @SailingJudo. Sollten Sie erweitern, mehr wissen über die Verwendung der Parameter der Rotate-Funktion. (Siehe meine Antwort weiter unten.)
InformationsquelleAutor Jorge Galvão
@Segeln, Judo, hier ist die beste Antwort, wenn Sie wollen, um es zu drehen wie ein Rad. Versuchen Sie immer wieder beobachten, um Ihren code und statt zu setzen/ändern der X-Achse als parameter, setzen Sie Ihren Wert auf der Z-Achse statt. Ändern der x-oder y-Achse in einer kreisförmigen Drehung landete, wie spiegeln Münzen. Beobachten und versuchen Sie es erneut.
InformationsquelleAutor David Dimalanta