private var targetPosition:Vector3;
var speed : float = 60;
var clickEffect : GameObject;
function Update () {
if(Input.GetKeyDown(KeyCode.Mouse0))
{
speed = 1;
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;
}
}
var dir:Vector3 = targetPosition - transform.position;
var dist:float = dir.magnitude;
var move:float = speed * Time.deltaTime;
if(dist > move){
transform.position += dir.normalized * move;
Instantiate(clickEffect,targetPosition,Quaternion.identity);
} else {
transform.position = targetPosition;
}
transform.position += (targetPosition - transform.position).normalized * speed * Time.deltaTime;
}
Any ideas how to fix it? Thanks in advance.
On line 51 you are checking if dist is bigger than move, and then instantiating a clickEffect. But then dist is still bigger than move and will keep spawning clickEffects.
– thaiscorpionAny ideas how to fix that?
– Madswint