Суббота, 23 Ноября 2024, 23:40

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

[ Новые сообщения · Игроделы · Правила · Поиск ]
  • Страница 1 из 1
  • 1
В чем смысл State Machine Behaviour?
appexДата: Среда, 06 Мая 2015, 02:24 | Сообщение # 1
был не раз
Сейчас нет на сайте
Я не совсем вьезду где мне писать код.

Есть турель.
Есть паук.

Турель стреляет в паука, паук получает урон.
Паук идет к турели и если он рядом, то он бьет турель.

На каждое действие присутствует анимация. Реализована через animator.

Допустим в скрипте (spider_ai) который привязан к пауку мы считаем, что если расстояние до турели > 10, то устанавливаем скорость паука в 1. На это реагирует Animator и включает анимацию Walk. Вот паук идет-идет и ... приходит. О том, что он пришел нам сообщил все тот же скрипт (spider_ai). Скрипт сбросил скорость на 0 и сказал аниматору, что мол ты можешь атаковать бро. Аниматор понял и начал атаковать.Но, при атаке нам следует сообщить турели о том, что ее собственно атакуют, для этого мы в spider_ai достанем скрипт turret_ai привязанный к турели и вызовем метод send_damage, казалось бы, что все замечательно.

Но по факту у паука есть анимация и согласно ей урон турели он должен нанести где-то на середине этой анимацией, а не сразу. Тут я обнаружил, что есть некие Behaviurs у State которые в принципе позволяют реализовать "отложенный" вызов send_damage во время анимации, написал я это и смотрю и думаю...кажется это гавнокод и жесткое нарушение логики и вообще взрыв мозга. Потому что определение расстояния/поиск цели/возможность атаки у нас в mob_ai , а сам дамаг посылается в обработчике аниматора.

Подумалось, что можно в update получать текущий State у Animator и работать с текущим состоянием, но кажется это какая-то чушь. Можно еще использовать Invoke, но что-то мне подсказывает, что это так же не очень корректно.

Как это все организуют нормальные люди? Я в геймдеве ну полное дно)
berilДата: Среда, 06 Мая 2015, 04:34 | Сообщение # 2
Я не ленивый, я — энергосберегающий
Сейчас нет на сайте
Цитата appex ()
н должен нанести где-то на середине этой анимацией, а не сразу

Animation Curves and Events




Накодил? Убери за собой!
Инвентарь в Unity(UI)
Инвентарь в Unity(GUI)
appexДата: Суббота, 09 Мая 2015, 03:02 | Сообщение # 3
был не раз
Сейчас нет на сайте
Спасибо
  • Страница 1 из 1
  • 1
Поиск:

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