Я очень новичок в C # (около 1 недели), поэтому я много читал уроки. В данный момент я пытаюсь отредактировать фрагмент кода (учебник по единству), чтобы враг следовал за игроком только в определенном диапазоне игрока (10 футов), но, к сожалению, не изменив полностью код, я не могу найти решение , В настоящий момент противник будет следовать за игроком только тогда, когда игрок жив (что я тоже хочу).
Я пытался погуглить то, что хочу, но я не хочу менять код слишком сильно. Я очень новичок в C # и в настоящее время учусь понемногу, другие методы, которые я нашел, требуют от меня много изменений в коде. Насколько я понимаю, основной упор в приведенном ниже коде заключается в том, чтобы враг полностью контролировал Nav Mesh Agent, могу ли я сохранить ту же технику?
using UnityEngine;
using System.Collections;
public class EnemyMovement : MonoBehaviour
{
Transform player;
PlayerHealth playerHealth;
EnemyHealth enemyHealth;
UnityEngine.AI.NavMeshAgent nav;
void Awake()
{
// references
player = GameObject.FindGameObjectWithTag("Player").transform;
playerHealth = player.GetComponent<PlayerHealth>();
enemyHealth = GetComponent<EnemyHealth>();
nav = GetComponent<UnityEngine.AI.NavMeshAgent>();
}
void Update()
{
if (enemyHealth.currentHealth > 0 && playerHealth.currentHealth > 0)
{
nav.SetDestination(player.position);
transform.LookAt(player);
}
else
{
nav.enabled = false;
}
}
}
Если возможно, я бы хотел добавить 2 функции. 1 - проверка, если игрок жив, а другая - проверка, находится ли игрок на расстоянии. Сейчас я не очень разбираюсь в raycast, так что это будет следующим шагом для меня, чтобы научиться работать так, как я хочу?
Спасибо за ваше время.
Дин.