Ошибка в поведении ИИ преследователя
Изучаю юнити и начал делать простенький ИИ врага, который преследует игрока и старается не сократить дистанцию до опасной для себя, если игрок толкает врага, то сбивается скорость и безопасная дистанция и враг перестает следовать за игроком, как можно двум динамическим объектам отключить столкновения и исправить ошибку выше.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class EnemyFollowing : MonoBehaviour
{
[SerializeField] private float _speed = 5;
[SerializeField] private float _attackDistance;
private Transform _player;
private Rigidbody2D _rigidBody;
void Awake()
{
_player = GameObject.FindGameObjectWithTag("Player").GetComponent<Transform>();
}
void FixedUpdate()
{
//transform.position = Vector2.MoveTowards(transform.position, _player.position, _speed * Time.fixedDeltaTime);
Follow();
}
void Follow()
{
if(Vector2.Distance(transform.position, _player.position) > _attackDistance)
{
transform.position = Vector2.MoveTowards(transform.position, _player.position, _speed * Time.fixedDeltaTime);
}
else if(Vector2.Distance(transform.position, _player.position) < _attackDistance)
{
transform.position = Vector2.MoveTowards(transform.position, _player.position, -(_speed * Time.fixedDeltaTime));
}
}