I used to have Vector3 everywhere, and my player movement was totally fine. However, now I’m using a script to get more fluid animations, and that required me to move everything over to Quaternions and now my rotations are fine, but since actual movement is still Vector3, I run into trouble:
// This works fine:
cc.Move (transform.forward * forwardMotion * moveSpeed);
// But this doesn't generate any movement... why?
Quaternion fwd = Quaternion.LookRotation(transform.forward);
cc.Move (fwd.eulerAngles * forwardMotion * moveSpeed);
I do not understand why there is a difference in results using the above code.
Also, using Debug.Log on the following:
North = Quaternion.LookRotation (-transform.right);
East = Quaternion.LookRotation (transform.forward);
West = Quaternion.LookRotation (-transform.forward);
South = Quaternion.LookRotation (transform.right);
I get:
(0.0, -0.7, 0.0, 0.7)
(0.0, 0.0, 0.0, 1.0)
(0.0, 1.0, 0.0, 0.0)
(0.0, 0.7, 0.0, 0.7)
Which I also do not understand (where the 0.7, for example, since it should all be at least right angles).