Follow a path with Rotation
I am trying to move a gameobject with a defined path. I have used iTweenpath and successfully implemented it, but the problem is when I choose a curve path my gameobject do not rotate according to path. My project is 2d so only Z axis will work for rotation.
iTween.MoveTo(gameObject , iTween.Hash("path" , iTweenPath.GetPath("Curve") , "time" , 10 , "easetype" , "linear" ,"orienttopath", true , "lookahead", 1.0f ,"axis", "z" , "islocal" , true));
Answer by monkeyballer · Nov 06, 2015 at 03:36 PM
You can use the PutOnPath function and PointOnPath function instead. For example:
private Transform[] currentPath; float percentsPerSecond = 0.1f; //10% of the path moved per second float currentPathPercent = 0.0f; //min 0, max 1
currentPathPercent += percentsPerSecond * Time.deltaTime;
iTween.PutOnPath(gameObject, currentPath, currentPathPercent); //gameObject is whatever you want to move, currentPath is the path you want to set it on, and //currentPathPercent is how fast you want that object to travel on that path
this.transform.LookAt(iTween.PointOnPath(currentPath, currentPathPercent+0.01f)); //I used this.transform because my script is attached to the object I want to move. I then used LookAt for the object to rotate to the next point on the iTween's path, which in this case would be currentPath. You HAVE to add some float value to currentPathPercent. As long as it's a value between 0 and 1, it'll work.
Hope this helps!