- Home /
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
Answer by HarshadK · Nov 21, 2014 at 01:50 PM
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);
Thank you - I'm not managing to get this working though, so the script now looks like this, but whatever speed I set, it still rotates instantly?
var mouseIcon : GameObject;
var mainCam : GameObject;
var speed : float = 10;
function Start () {
mainCam.GetComponent($$anonymous$$ouseLook_unbugged).enabled = false;
}
function Update()
{
if(mouseIcon.activeInHierarchy == true) {
mainCam.GetComponent($$anonymous$$ouseLook_unbugged).enabled = true;
}
if(mouseIcon.activeInHierarchy == false) {
mainCam.GetComponent($$anonymous$$ouseLook_unbugged).enabled = false;
mainCam.transform.rotation = Quaternion.Slerp(Quaternion.Euler(0, transform.eulerAngles.y, 0), Quaternion.Euler(0,0,0), speed * Time.deltaTime);
}
}
Your answer
Follow this Question
Related Questions
Turn and Move Foward 1 Unit relative to Objects local direction 1 Answer
Rotate some coordinates in relation to an object's rotation 0 Answers
How do I clamp the Z-Axis Rotation for this code? 1 Answer
How to prevent Transform from going through walls? 2 Answers
Using euler angles to rotate causes the object to get stuck on the x axis? 1 Answer