How can I continue to update the closest object with tag? I want to know what object is closest at all times, but it never changes, just sets the closest once and it stays at the same spot.
I appreciate any help here.
Thanks
using UnityEngine;
using System.Collections;
using UnityEngine.Networking;
public class ESportBallMovement : MonoBehaviour {
GameObject[] ballWayPoints;
GameObject closest;
private Vector3 targetPos;
float distance = Mathf.Infinity;
public float speed;
float step;
void Start()
{
ballWayPoints = GameObject.FindGameObjectsWithTag("ballWaypoint");
step = speed * Time.deltaTime;
}
void Update ()
{
FindClosestWaypoint ();
//sets the target position and moves toward it
targetPos = (closest.transform.position);
transform.position = Vector3.MoveTowards (transform.position, targetPos, step);
}
GameObject FindClosestWaypoint()
{
//populates the array of ballWaypoints
foreach (GameObject ballWayPoint in ballWayPoints)
{
//finds the distance between ball and the ballWaypoints
Vector3 diff = ballWayPoint.transform.position - transform.position;
float curDistance = diff.sqrMagnitude;
//finds the closest ballWaypoint
if (curDistance < distance)
{
closest = ballWayPoint;
distance = curDistance;
}
}
Debug.Log (" Current Waypoint:" + closest.name);
return closest;
}
}