Суббота, 30 Ноября 2024, 04:52

Приветствую Вас Гость

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
ИИ в Unity c#
aesthetic1044Дата: Вторник, 08 Мая 2018, 14:20 | Сообщение # 1
был не раз
Сейчас нет на сайте
Ситуация состоит в том, что я хочу, чтобы ИИ патрулировал территорию к примеру метров 10-15, при этом обходил объекты. Тоесть не чтобы я задавал траекторию его движения, а это делалось именно случайно.
drcrackДата: Вторник, 08 Мая 2018, 14:23 | Сообщение # 2
старожил
Сейчас нет на сайте
А с чем конкретно проблема?
aesthetic1044Дата: Вторник, 08 Мая 2018, 22:26 | Сообщение # 3
был не раз
Сейчас нет на сайте
Проблема в том, что я не понимаю каким образом это реализовать:D
dimati9Дата: Вторник, 08 Мая 2018, 23:09 | Сообщение # 4
частый гость
Сейчас нет на сайте
Заходишь на Youtube, в строке поиска "NavMesh уроки"

- Обо мне -
AndVolkoVДата: Среда, 09 Мая 2018, 09:34 | Сообщение # 5
участник
Сейчас нет на сайте
aesthetic1044, Я у себя примерно так сделал патрулирование
Код

    public Transform[] wayPoints;//Все точки патрулирования
    public Transform targetWayPoint;//Текущая точка, в которую следует ИИ
    
    EnemyMotor motor;//Здесь у меня управление анимациями
    NavMeshAgent agent;//Собственно NavMeshAgent ИИ
    
    void Update ()
    {        
            if (wayPoints.Length > 1)//Если количество точек больше 1
            {
                if(Vector3.Distance(transform.position, targetWayPoint.position) <= 1f)//И дистанция до текущей точки следования меньше, допустим 1 метр
                {
                    targetWayPoint = wayPoints[Random.Range(0, wayPoints.Length)];//Случайно выбираем следующую точку для следования ИИ
                }
                else//Иначе
                {
                    agent.SetDestination(targetWayPoint.position);//ИИ следует к текущей точке следовования
                    motor.Locomotion(agent.velocity.magnitude);//
                }
            }        
    }

Уверен, что можно сделать еще изящней ;)


Сообщение отредактировал AndVolkoV - Среда, 09 Мая 2018, 09:41
aesthetic1044Дата: Среда, 09 Мая 2018, 14:26 | Сообщение # 6
был не раз
Сейчас нет на сайте
AndVolkoV, targetWayPoint = wayPoints[Random.Range(0, wayPoints.Length)]; - именно то, что нужно. Огромное спасибо!
  • Страница 1 из 1
  • 1
Поиск:

Все права сохранены. GcUp.ru © 2008-2024 Рейтинг