Lawrence William Trigg - 2 months ago 26
C# Question

# Unity 3D 360 turning SpaceShip

so I am brand new to Unity, Installed Unity yesterday and want to make a simple game to get myself started...
So I am trying to get a 3D cube to turn by rotation while the up and down moves the cube.

I found out kind of what i was doing following a 2D tutorial online but it seems like it never worked in 3D as my cube instead of rotating around, either tries to tilt over or not move (changing the z y and x on the rotation)

Here is my code, any help would be appreciated or directions to a good tutorial for what i am after would be brilliant!

``````public class Movement : MonoBehaviour {

float maxSpeed = 4f;
float rotSpeed = 180f;
void Start () {

}

void Update () {

//ROTATE SHIP
Quaternion rot = transform.rotation;
float x = rot.eulerAngles.x;
x += Input.GetAxis ("Horizontal") * rotSpeed * Time.deltaTime;
rot = Quaternion.Euler (0, 0, x);
transform.rotation = rot;

//MOVE SHIP
Vector3 pos = transform.position;
pos.z += Input.GetAxis ("Vertical") * maxSpeed * Time.deltaTime;
transform.position = pos;
}
}
``````

Answer

change this line:

``````rot = Quaternion.Euler (0, 0, x);
``````

to this line:

``````rot = Quaternion.Euler (x, 0, 0);
``````

You were taking original x and assigning it back as z;

Source (Stackoverflow)
Comments