@Romanuss

Передвижение врага в 2д?

Здравствуйте, сделал передвижение врага в 2д по x координате.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class EnemyMove : MonoBehaviour {

    public float speed;
    private bool movingRight = true;
    public float distance;

    public Transform groundDetector;

    void Update() {

        transform.Translate(Vector2.right * speed * Time.deltaTime);
        

        RaycastHit2D groundInfo = Physics2D.Raycast(groundDetector.position, Vector2.down, distance);

        if (groundInfo.collider == false)
        {
            if (movingRight == true)
            {
                transform.eulerAngles = new Vector3(0, -180, 0);
                movingRight = false;
            }
            else
            {
                transform.eulerAngles = new Vector3(0, 0, 0);
                movingRight = true;
            }
        }



	}
}


Но как сделать так, чтобы враг останавливался через каждые 3 секунды, а после 2 секунд продолжил движение?

Само движение:
5b55f94acea82261836634.jpeg
  • Вопрос задан
  • 667 просмотров
Решения вопроса 2
@Satangelus
У Вас две фазы движения. Фаза 1 длительностью 3 секунды объект движется, фаза 2 длительностью 2 секунды стоит.
Делаем перечислением
enum enemystate
{
move,
pause
}


Назначаем объекту текущую фазу и заводим таймер. (в функции вызова прописываем переключение фаз и перестартовку таймера.) В функции update проверяем условие, что обновление только при текущей фазе движения.
Ответ написан
MisticX
@MisticX
Кратно обо мне
Можно создать таймер, при запуске которого будет отсчитываться время движения, и если счётчик таймера будет больше 3 секунд - останавливаем его и запускаем таймер, который отвечает за время остановки. Пока показатель таймера остановки будет меньше 2 секунд не двигаем объект. После 2 секунд останавливаем таймер остановки и запускаем таймер движения при старте которого двигается сам игровой объект.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы