Вот наконец подошло мне время делать стрелков. Обычных монстров я наделал уже пачку и они работают довольно просто, используя навигацию рассчитывают дистанцию, наличие открытого пути к игроку, дистанцию от дома, наличие опасных зон и если есть возможность подбегают к игроку поближе и дубасят от души.
А вот стрелки это немножко другое. Ну как стрелки, кобольды с камнями. Они не могут просто подойти к игроку и вломить, а должны найти удобный сектор из которого можно жахнуть камнем. Не то, чтобы это кардинально всё усложняло. Однако здесь добавляется несколько новых состояний. Поэтому если обычного монстра, с горем пополам можно сделать одним скриптом и делать все решения в Update(), то нормального лучника без стейт-машины не сделаешь, просто из-за большого количества вариантов поведения. Ну как я это на данный момент понимаю.
А вот со стейт машиной всё легко бежишь к игроку, пока не он не попадёт в поле зрения, если прибежал слишком близко, переключаешься в состояние убегания на пару секунд и возвраващаешься в состояние атаки. И так далее и тому подобное.
Потом я на эту логику хочу набросить мобам способность действовать командой и разделять обязанности, но это через пару месяцев. А пока небольшое видео, как наивная девушка алхимик зашла не в ту деревню кобольдов.
Ссылка на игру, если что здесь. Но данного уровня в деме пока нету.