Help with overhead view game

Hello, my game im creating is going to be a recreate of 100 rounds in the game WARCRAFT III.

If any of you are familliar with the game its an overhead camera style right click to move game where you have to dodge 100 rounds of oncoming enemys. My sphere that im using for a temporary character ALWAYS Rolls to 0,0 right when i hit the play butten, i have no idea why, here is a screen shot and the script for movement that i am using.

var smooth:int;

private var targetPosition:Vector3;

function Update () {
if(Input.GetKeyDown(KeyCode.Mouse1))
{
var playerPlane = new Plane(Vector3.up, transform.position);
var ray = Camera.main.ScreenPointToRay (Input.mousePosition);
var hitdist = 0.0;

	if (playerPlane.Raycast (ray, hitdist)) {
		var targetPoint = ray.GetPoint(hitdist);
		targetPosition = ray.GetPoint(hitdist);
		var targetRotation = Quaternion.LookRotation(targetPoint - transform.position);
		transform.rotation = targetRotation;
	}
}

transform.position = Vector3.Lerp (transform.position, targetPosition, Time.deltaTime * smooth);

}

Be a bit more specific. Format your code by using the “101010” button. Also try using Vector3.MoveTowards instead. If this code doesn’t help let me know a bit more detail on what you want to do, I’ll be happy to try and help :smiley:

private var targetPosition : Vector3;
var playerPlane;
var ray : Ray;
private var hitdist : float = Mathf.Infinity;
var speed : float = 60.0f;


function Update () 
{ 
	ray = Camera.main.ScreenPointToRay (Input.mousePosition); 
	if(Input.GetKeyDown(KeyCode.Mouse1)) 
	{
		playerPlane = new Plane(Vector3.up, transform.position);
		if (playerPlane.Raycast (ray, hitdist)) 
		{ 
			var targetPoint = ray.GetPoint(hitdist); 
			targetPosition = ray.GetPoint(hitdist); 
			var targetRotation = Quaternion.LookRotation(targetPoint - transform.position); 
			transform.rotation = targetRotation; 
		} 
	}
	transform.position = Vector3.MoveTowards(transform.position, targetPosition, speed * Time.smoothDeltaTime); 
}