Имеется скрипт. Он должен вызывать корутину, чтобы враг двигался к игроку, но почему-то этого не происходит.
Вот скрипт -
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.AI;
public class EnemyController : MonoBehaviour
{
public NavMeshAgent agent;
private Transform player;
private int agentActive = 0;
void Start ()
{
player = GameObject.FindGameObjectWithTag("Player").transform;
}
void OnTriggerStay(Collider other){
if (other.tag == "Player"){
agentActive = 0;
}
else agentActive = 1;
}
void FixedUpdate(){
if(agentActive == 1){
StartCoroutine(findPath());
}
else StopCoroutine(findPath());
}
IEnumerator findPath()
{
while(true)
{
if(player != null)
{
agent.SetDestination(player.position);
yield return new WaitForSeconds(0.05f);
}
else break;
}
}
}
Пробовал реализовывать код по разному, но постоянно одно и тоже. Почему так получается?