Hi,

first of all I know that transform.forward is literally the solution for my question, but:

I´m going to write a test on linear algebra and want to get an in-depth understanding who to calculate it on my own.

So I want to move an object constantly on it´s local z-axis forward and rotate it, to steer its direction of movement. Who would I calculate the z-axis movement?

Thanks in advance!

Given an objects rotation, you can calculate the forward vector like so:

**

```
Vx = 2 * (x*z + w*y)
Vy = 2 * (y*z - w*x)
Vz = 1 - 2 * (x*x + y*y)
```

**

With Vx, Vy, and Vz being the components of the forward direction along each of the cardinal axis and w, x, y, z being the Quaternion’s internal values - so in code

```
Quaternion r = transform.rotation;
float xComp = 2*(r.x*r.z + r.w*r.y);
float yComp = 2*(r.y*r.z + r.w*r.x);
float zComp = 2*(r.x*r.x + r.y*r.y);
Vector3 forward = new Vector3(xComp,yComp,zComp);
```

However this is maybe not what you are looking for. If you want to instead use the euler angles, you could take the x and y rotations and apply it to a forward vector:

**

- Take global z axis vector and the global y axis vector
- Rotate both about the global x axis by rotation.eulerAngles.x
- Rotate the new z vector about the new y vector by rotation.eulerAngles.y
- Resulting z vector is your forward vector