- Home /
Transform rotate questions
Hey! I did this script for move a specific arm up and down when i press the keys Z, and X.
#pragma strict
var ArmUp : int = 20;
var ArmDown : int = 10;
var Pistone : AudioClip;
function Update () {
if(Input.GetKey(KeyCode.Z))
{
transform.Rotate (1, 0, 0 * Time.deltaTime * ArmUp);
}
if(Input.GetKey(KeyCode.X))
{
transform.Rotate (-1, 0, 0 * Time.deltaTime * ArmDown);
audio.clip = Pistone;
audio.Play();
}
}
My questions are:
1) why the var speed (armup, armdown) have always the same speed also if I set for example 20 ad 100?
2) how can I do for set the limits of the rotation Up and Down? So the rotation is 360°.
3) when i leave the keys (Z or X) the rotation stops immediately, how can I make an effect of slow stop?
Thank you so much for your support, Paolo
Answer by Chris_Dlala · May 26, 2014 at 01:59 PM
Hey. The Z rotation amount is always evaluated to 0. Anything multiplied by 0 is 0. The only rotation you are getting is in the X because you are passing in values 1/-1.
transform.Rotate (-1, 0, 0 * Time.deltaTime * ArmDown);
Should be
transform.Rotate (-1, 0, Time.deltaTime * ArmDown);
That is if you are going for a rotation in both the X and Z. I hope this helps =)
ok the values that i had to edit was the firts:
transform.Rotate (-2, 0, 0 Time.deltaTime ArmDown);
bacause the movement that I wanted was like this:
So i have to remove the var armup and armdown bacause are useless?
And for the point 2 of my question do you have any ideas? :/
Your answer

Follow this Question
Related Questions
LookAt Problem 1 Answer
Object rotation 2 Answers
Transform.Rotate() problem : Avoid Z-axis rotation ? 0 Answers
Rotation Jumping values (0 to 180) 1 Answer
Rotate Method via Update ? 2 Answers