Код: Выделить всё
`using UnityEngine;
public class EnemyMovement : MonoBehaviour
{
public GameObject Target;
public GameObject Player;
public float Dis;
public float chaseSpeed = 5f;
public float closeDis = 2f;
public float playerDis;
public float playerChaseDis = 5f;
Rigidbody rb;
Vector3 moveDirection;
public float enemyHeight;
public LayerMask whatIsGround;
bool grounded;
public float groundDrag;
private void Start()
{
rb = GetComponent();
rb.freezeRotation = true;
}
void Update()
{
Dis = Vector3.Distance(transform.position, Target.transform.position);
playerDis = Vector3.Distance(transform.position, Player.transform.position);
if (playerDis = closeDis) ;
transform.position = Vector3.MoveTowards(transform.position, Target.transform.position, chaseSpeed * Time.deltaTime);
transform.LookAt(Target.transform.position);
Я создаю сценарий движения для врагов и хочу, чтобы у них было две цели. Одна из них является точкой атаки, а другая — игроком. Я сделал рабочее движение, при котором враг переключается с точки атаки на игрока, когда игрок подходит слишком близко, но я не могу заставить врага сменить того, на кого он смотрит.
По какой-то причине в части «Обновление пустоты», в разделе IF со строкой «transform.LookAt(Player.transform.position);» точка с запятой в конце всегда выделяется красным, и это не позволяет коду работать. Кто-нибудь знает решение?
Подробнее здесь: https://stackoverflow.com/questions/798 ... tack-point