How do I rotate something smoothly?

I want to rotate something smoothly, like an animation. Right now I have

``````transform.Rotate(0, 0, 30);
``````

and I have tried to look up on how to make it smooth by using

``````transform.Rotate(new Vector3(0, 0, 30) * Time.deltaTime);
``````

but that never worked for me.

If you are rotating something constantly with constant amount of degree, there is no point of smoothing. But if you need to rotate smoothly when let’s say a button is pressed, you need something like this to achieve what you did with transform.Rotate():

``````void Start()
{
targetRotation = transform.rotation;
}
void Update()
{
if (Input.GetKeyDown("space"))
targetRotation *= Quaternion.Euler(0, 0, 30);
transform.rotation = Quaternion.Lerp(transform.rotation, targetRotation, Time.time * speed);
}
``````

Hope that helps.

@FroddeB This rotate a cube01 around the y axis at 1 angle(speed)

``````void Start () {

}

// Update is called once per frame
void Update () {
this.transform.Rotate (new Vector3 (0, 1, 0), 1);   //rotates cube 01 around y-axis
}
}
``````

Or, if you want to rotate as you hold a button down:

``````void Start () {

}
void Update () { //continuously executed while the program is running

if(Input.GetKey(KeyCode.A)){
this.transform.Rotate (new Vector3(0,1,0), 1); //rotation on y-axis
}
}
``````

If you want you can change the angle/speed or direction at which it’s turning.