Rotating object on it's Y axis from pos 180 to 0...

Hi there,

I’m trying and can’t figure out how to rotate my object from it’s position of 180 on it’s Y axis to position 0 on it’s Y axis. I can do it the other way around (from 0 to 180). I tried to play with the code I have but nothing happens. Any help would be much appreciated. Here’s my code for 0 to 180.

var LoadChapterPageCollider : GameObject;
var speed = 100.0;  // Degrees per second 
private var myEuler = Vector3(0,0,0);
private var rotating = false;


var ChapterPage : GameObject;
var BlankPageLeft : GameObject;
var TheEnd : GameObject;

function Update () {
 
   if (!rotating  && Input.GetMouseButtonDown (0)) {
       var ray = Camera.main.ScreenPointToRay (Input.mousePosition);
       var hit:RaycastHit;
 
       if (Physics.Raycast (ray, hit, 20) && (hit.collider.name == "loadChapterPageCollider")) {
         rotating = true;
       }
    }
 
    if (rotating) {
       myEuler.y = Mathf.MoveTowardsAngle(myEuler.y, 180, Time.deltaTime * speed);
       ChangeIntro1();
       if (myEuler.y >= 180) {
       myEuler.y = 0;
       rotating = false;
       Application.LoadLevel("MainMenu");
       }
 
       transform.eulerAngles = myEuler;
    }
}
	
///Hide and show Pages		
function ChangeIntro1(){

		ChapterPage.SetActive (true);
		TheEnd.SetActive (false);
		}

Your logic here is for a 0 to 180. You need to change the logic:

if (rotating) {
   myEuler.y = Mathf.MoveTowardsAngle(myEuler.y, 0, Time.deltaTime * speed);
   ChangeIntro1();
   if (myEuler.y <= 0) {
       myEuler.y = 0;
       rotating = false;
       Application.LoadLevel("MainMenu");
   }

Plus you need to be absolutely sure that myEuler.y represents the ‘y’ rotation of your object when you start your rotation.

If you want a smooth rotation and easy implementation use iTween engine. iTween for Unity by Bob Berkebile (pixelplacement)