# How do I control the rotation of object.

I have a 3d game in which the object is controlled by the Gyro on iPad. Object is set to move on x and y axis ONLY. I added a slight rotation to the objects movement to make the movements feel less mechanical. So the object tilts slightly in the direction that its moving. I have run in to 2 issues. I am not able to limit the amount of rotation of the object. Also the objects rotates too slowly.

How do I limit the amount of rotation and how do I get the object to respond faster during rotation. Heres the code that controls rotation:

``````//Control character rotation
currentAcceleration = Vector3.Lerp(currentAcceleration, Input.acceleration - initialAcceleration, Time.deltaTime/smooth);

newRotation = Mathf.Clamp(currentAcceleration.x * sensitivity, -1, 1);
transform.Rotate(0, 0, -newRotation);
``````

After a little experimentation I was able to get the speed of the rotation to respond quicker. Now if I can figure out how to properly clamp the rotation I’ll be golden. Heres more of the script that controls movement:

``````void Update()
{

//Move character using gyro//

//Controls input speed
_InputDir = getAccelerometer(Input.acceleration);

//Controll character using accelerometer
transform.Translate (_InputDir.x * xSpeed, _InputDir.y * ySpeed, 0);

//Control character rotation
currentAcceleration = Vector3.Lerp(currentAcceleration, Input.acceleration - initialAcceleration, Time.deltaTime/smooth);

newRotation = Mathf.Clamp(currentAcceleration.x * sensitivity, -5, 5);
transform.Rotate(0, 0, -newRotation);

//Constrain character movement to viewport//
Vector3 boundaryVector = transform.position;

Vector3 pos = Camera.main.WorldToViewportPoint (transform.position);
pos.x = Mathf.Clamp01(pos.x);
pos.y = Mathf.Clamp01(pos.y);
pos.z = Mathf.Clamp (transform.position.z, 100, 50);

transform.position = Camera.main.ViewportToWorldPoint(pos);

}
``````

Also movement is restricted to camera viewport.