rotate an object slowly and equally

hey, I’m trying to rotate an object from Quaternion to other Quaternion
the code looks like that:

this.rotation = Quaternion.Slerp(this.rotation, q, speed * Time.deltaTime);

this.rotation is the rotation I’m currently in and the q in the Quaternion that contain the rotation I want to be in.
This code found in my update and it is makes me rotate to “q” but it starts the rotation really fast and then towards the end it gets slower. I thought that changing from Lerp to Slerp should work but it’s not.
how can I do that the rotation speed will be equal all the way?

You are using Slerp wrongly. The last parameter goes from 0 to 1 and it determines how far you have come from the first value towards the second value. If it goes over or under 0 and 1, the closest value will be used. See

If you want a rotation to take a certain amount of time, you could do something like this:

[URL='http://unity3d.com/support/documentation/ScriptReference/30_search.html?q=rotation']rotation[/URL]=[URL='http://unity3d.com/support/documentation/ScriptReference/30_search.html?q=Quaternion']Quaternion[/URL].[URL='http://unity3d.com/support/documentation/ScriptReference/30_search.html?q=Slerp']Slerp[/URL](this.[URL='http://unity3d.com/support/documentation/ScriptReference/30_search.html?q=rotation']rotation[/URL], q, (Time.time - startTime) / timeToRotate);

Where startTime is the Time.time when the rotation started and timeToRotate is how long you want the rotation to take.