- Home /
Lookat via Single Axis
OK,
I've been digging around and trying to have a single Bone in a models armature to rotate on a single axis to make the armature look at something.
The problem I'm having is that it rotates in a weird ways with each method I've tired.
Here is my current try. https://www.dropbox.com/s/fs9y8mfg6gxw08t/web.rar
This is the closest I've gotten to make it work, but still does not behave correctly.
Here is the code:
void CalculateAimPosition(Vector3 targetPos) {
Vector3 aimPoint = new Vector3(targetPos.x - transform.position.x + _aimError,
targetPos.y - transform.position.y + _aimError,
targetPos.z - transform.position.z + _aimError);
Quaternion newRot = Quaternion.LookRotation(aimPoint);
horizantalPivet.transform.rotation = Quaternion.Slerp(horizantalPivet.transform.rotation, newRot, Time.deltaTime * 2.0f);
}
I've tired The following: http://answers.unity3d.com/questions/36255/lookat-to-only-rotate-on-y-axis-how.html http://answers.unity3d.com/questions/304481/rotate-object-on-one-axis-with-slerp.html http://forum.unity3d.com/threads/36377-transform.LookAt-or-Quaternion.LookRotation-on-1-axis-only
I think the problem is the the fact the bone already has a rotation to it. The default rotation of it is X:0 Y:90 Z:0.
Have a look at the Quaternions tutorial on Unity Gems which shows a basic set of looking at on a single axis.
I looked at it and what i want to do should be Scene 2 (though in my case it's Z axis not Y, but shouldn't mater. I think the problem comes in base of the base objects rotation. When the model is imported in it's rotation and axis's don't match with unity's
Here is full project of it. Let me know what you think. https://www.dropbox.com/s/fjdpf9si42y07zt/TurretDemo.rar
Please post your own question. This is not really related to what the OP is asking for.
Your answer
Follow this Question
Related Questions
Quaternion.Slerp on local axis 1 Answer
Rotate object on one axis with slerp 1 Answer
Lerp 180 degrees while holding B and lerp back 180 degrees when let go of B. 2 Answers
Finding the Euler angles of an object's rotation in terms of a different set of axes 0 Answers
LookRotation Vector3 is Zero, Yet Slerp Still Rotates? 2 Answers