Untitled
unknown
plain_text
2 years ago
1.3 kB
6
Indexable
public NavMeshAgent agent; [Header("Speed&Radius")] [Range(0, 100)] public float speed; [Range(1, 500)] public float walkRadius; private bool isWandering = false; public GameObject NavSphere; [Header("Scripts")] [SerializeField] public KnifeController KnifeController; [SerializeField] public ReceiveDamageBAD ReceiveDamageBAD; public void Start() { agent = GetComponent<NavMeshAgent>(); if(agent != null && KnifeController.currentTarget == null) { agent.speed = speed; agent.SetDestination(RandomNavMeshLocation()); } } public void Update() { if (agent != null && agent.remainingDistance <= agent.stoppingDistance && KnifeController.currentTarget == null) { agent.SetDestination(RandomNavMeshLocation()); } } public Vector3 RandomNavMeshLocation() { Vector3 finalPosition = Vector3.zero; Vector3 randomPosition =Random.insideUnitSphere * walkRadius; randomPosition += transform.position; if(NavMesh.SamplePosition(randomPosition, out NavMeshHit hit, walkRadius, 1)) { finalPosition = hit.position; } return finalPosition; }
Editor is loading...