Hello, I’m pretty new to this so please bear with me, i’ll try to be concise as possible.
Essentially I have a game object, at the moment it’s a sphere. And when the mouse hovers over it and moves across, it will cause it to spin. Just like holding a globe and pushing your hand across causes it to spin and the inertia continues after the hand has moved away, until the globe has ceased spinning.
So the code I have sourced is from here.
var rotationSpeed = 10.0;
var lerpSpeed = 1.0;
private var speed = new Vector3();
private var avgSpeed = new Vector3();
private var dragging = false;
private var targetSpeedX = new Vector3();
function OnMouseDown()
{
dragging = true;
}
function Update ()
{
if (Input.GetMouseButton(0) && dragging) {
speed = new Vector3(-Input.GetAxis ("Mouse X"), Input.GetAxis("Mouse Y"), 0);
avgSpeed = Vector3.Lerp(avgSpeed,speed,Time.deltaTime * 5);
} else {
if (dragging) {
speed = avgSpeed;
dragging = false;
}
var i = Time.deltaTime * lerpSpeed;
speed = Vector3.Lerp( speed, Vector3.zero, i);
}
transform.Rotate( Camera.main.transform.up * speed.x * rotationSpeed, Space.World );
transform.Rotate( Camera.main.transform.right * speed.y * rotationSpeed, Space.World );
}
However it rotates on every axis, what would be the best method to have the object only rotate on the Y axis?
Thanks