transform.eulerAngles of camera - changing the speed of rotation not working?

Hi,

When a specific game object is set to inactive, I want the camera’s rotation to be set to 0,0,0 - but I need it to slowly rotate towards it rather than instantly being set to 0,0,0.

I’ve tried a lot of variations - but I can’t seem to get it to change speed.

var mouseIcon : GameObject;
var mainCam : GameObject;
var target : float = 0;
var speed : float = 10;


function Start () {

mainCam.GetComponent(MouseLook_unbugged).enabled = false;


}
 
 function Update()
 {
 
 if(mouseIcon.activeInHierarchy == true) {
 

 mainCam.GetComponent(MouseLook_unbugged).enabled = true;

 
 
 }
 
if(mouseIcon.activeInHierarchy == false) {

 mainCam.GetComponent(MouseLook_unbugged).enabled = false;
 

 var angle : float = Mathf.MoveTowardsAngle
			(transform.eulerAngles.y, target, speed * Time.deltaTime);
		mainCam.transform.eulerAngles = Vector3(0, angle, 0);
 
 


}

}

Any ideas on what I’m doing wrong?

All the best, Laurien

You can use Quaternion.Slerp.

Replace your these lines of code:

var angle : float = Mathf.MoveTowardsAngle
             (transform.eulerAngles.y, target, speed * Time.deltaTime);
         mainCam.transform.eulerAngles = Vector3(0, angle, 0);

with

mainCam.transform.rotation = Quaternion.Slerp(Quaternion.Euler(0, transform.eulerAngles.y, 0), Quartenion.Euler(0,0,0), speed * Time.deltaTime);