- Home /
Rotation Object Follow Help
Before I was having problems with writing a script that would follow an object by rotating towards it on one axis... like a plane. I got something figured out, it works flawlessly except that it can't turn all the way around it seems like 180 is the limit and it can't follow targets behind itself. Any way I can fix this. Here's my code:
pragma strict
var target : GameObject; var startRot : Quaternion;
var rotSpeed : float;
function Start () {
startRot = transform.rotation; }
function Update () {
if(target != null){ var rotation = Quaternion.LookRotation(transform.position - target.transform.position); transform.rotation = Quaternion.Slerp (transform.rotation, rotation, rotSpeed * Time.deltaTime); var eulerAngles = transform.rotation.eulerAngles; eulerAngles.y = startRot.eulerAngles.y; eulerAngles.z = startRot.eulerAngles.z; // Set the altered rotation back transform.rotation = Quaternion.Euler(eulerAngles); }
Answer by sparkzbarca · Nov 10, 2012 at 08:42 AM
is this top down? like say asteroids If so you want to rotate on the global up axis which is
(0,1,0)
or
vector3.up
if its viewed from the front ala side scroller like mario
(technically mario could have been made in a 3d program with the camera actually above or whatever)
But basically if its in front of the camera and teh camera is looking forward that axis is
vector3.forward
Basically what 2 dimensions are we working with here?
because the rotational axis is the third dimension.
Answer by deltamish · Nov 10, 2012 at 09:46 AM
Hi, I dont know on which axis you want the object to rotate
Use this to rotate on Y axis only
//add this in Update function
transform.eulerAngles = Vector3(0,transform.eulerAngles.y,0);
Your answer
Follow this Question
Related Questions
C# Make an object rotate along axis its moving on 0 Answers
Object facing the wrong way? 1 Answer
Replicate rotation of Camera 1 Answer
rotate axis of movement 0 Answers