My script is intended to move a gameobject towards an object called “cursor.” I’m trying to get the script to launch in a coroutine so it recalculates where it’s supposed to go when I click a second time. I’m pretty sure I’m not doing it right because the gameobject doesn’t move at all. Here is my script:
public Vector3 startMarker;
public Vector3 endMarker;
public GameObject point;
public float speed;
private float startTime;
private float journeyLength;
void Update()
{
if (Input.GetMouseButtonDown(0))
{
startMarker = gameObject.transform.position;
endMarker = GameObject.Find("Cursor").transform.position;
StartCoroutine(Move());
}
IEnumerator Move()
{
startTime = Time.time;
journeyLength = Vector3.Distance(startMarker, endMarker);
float distCovered = (Time.time - startTime) * speed;
float fractionOfJourney = distCovered / journeyLength;
transform.position = Vector3.Lerp(startMarker, endMarker, fractionOfJourney);
}
}
It seems like I’m missing something pretty simple, but I can’t spot it… Thanks for helping!