Quaternion/World Local rotation problem
I've spent the past few days trying to fix this by myself with no result.
I have a turret in a tank transform. I want the turret to look at something on the y axis, and not move on the x,z axis.
Here are some lines I've already tried:
Quaternion.AngleAxis(targetQuaternion.y, Vector3.up); //couldn't align with the rest of the tank
.rotation = Quaternion.Euler(offset, targetQuaternion.y + offset, 0); //didn't follow x,z correctly
.localRotation = Quaternion.Euler(offset, targetQuaternion.y + offset, 0); //didn't follow y correctly
//Futile switching between Quaternions and Vector3
Quaternion haggis = transform.rotation;
Vector3 fuckwad = haggis.eulerAngles;
Quaternion test = Quaternion.AngleAxis (targetQuaternion.y, Vector3.up);
Vector3 rotten = test.eulerAngles;
rotten = rotten + fuckwad + new Vector3 (-90, 0, 0);
Vector3 rot3 = new Vector3 (rotten.x - 90, targetQuaternion.y + 180, rotten.z);
I believe most of my frustration is trying to find a way to set the y value globally and x,z value locally all in one go. I know in Java, I could've coded something like this, but what is the C# equivalent?
transform.rotation.y=insertAngleHere;
transform.rotation.x=0.0;
transform.rotation.z=0.0;
Your answer
Follow this Question
Related Questions
Why Quaternion.Euler can't rotate 360 Degrees 0 Answers
transform.localRotation = Quaternion.RotateTowards() or Quaternion.Euler fails on vertical axis 1 Answer
How to test for rotation? 0 Answers
Draw a ray from a gamobject and keep direction of the ray relative to the gameobjects rotation. 1 Answer
Keydoor problem 0 Answers