I already have code to find the closest player and go towards them but how do I implement this while using NavMesh so I can avoid walls?
Code:
using UnityEngine;
using System.Collections;
public class FindClosest : MonoBehaviour
{
public float speed = 1f / 100;
public GameObject FindClosestPlayer()
{
GameObject[] gos;
gos = GameObject.FindGameObjectsWithTag("Player");
GameObject closest = null;
float distance = Mathf.Infinity;
Vector3 position = transform.position;
foreach (GameObject go in gos)
{
Vector3 diff = go.transform.position - position;
float curDistance = diff.sqrMagnitude;
if (curDistance < distance)
{
closest = go;
distance = curDistance;
}
}
return closest;
}
public void Update()
{
GameObject whatToFollow = FindClosestPlayer();
transform.position = Vector3.MoveTowards(transform.position, whatToFollow.transform.position, speed * Time.deltaTime);
}
void OnCollisionEnter(Collision col)
{
if (col.gameObject.tag == "Player")
{
Debug.Log("Collsion!");
}
}
}
↧