Решение проблемы с врагом
В коде противника есть атака и охрана зоны.
Первая проблема: я не смог внести метод Run в Update.
Вторая - в повороте противника:
float direction = player.transform.position.x - transform.position.x;
sprite.flipX = direction < 0.0f;
То есть противник сначала стоит 1 секунду, после переворачивается на другую сторону, и ходит уже только так. Помогите мне пожалуйста, ибо я много пытался, но так и не пришел к верному написанию кода. Вот сам весь код:
public Transform start;
public Transform end;
private SpriteRenderer sprite;
public float arriveTime = 3f;
GameObject player;
const float speedMove = 3.5f;
void Start()
{
player = GameObject.FindWithTag("Player");
}
void Awake() {
sprite = GetComponentInChildren <SpriteRenderer> ();
}
void Update()
{
float direction = player.transform.position.x - transform.position.x;
sprite.flipX = direction < 0.0f;
if (Mathf.Abs (direction) < 10) {
Vector3 pos = transform.position;
pos.x += Mathf.Sign (direction) * speedMove * Time.deltaTime;
transform.position = pos;
}
}
void Run() {
Vector3 direction = transform.position = Vector2.Lerp(start.position, end.position, Mathf.PingPong(Time.time/arriveTime, 1f));
sprite.flipX = direction.x < 0.0f;
}