Вместо одного контроллера с каскадом условий поведение 3D-врага делится на состояния: ожидание, патруль, погоню, атаку и реакцию на попадание. Каждое состояние выполняет свою задачу и само решает, когда передать управление следующему.
В основе врага находится
CharacterBody3D. NavigationAgent3D ведёт его к точкам патруля или игроку в обход препятствий, а две области Area3D отдельно замечают цель и определяют дистанцию атаки. Случайная длительность ожидания не даёт группе противников начать движение синхронно.Разбор 3D-врага в Godot 4 показывает структуру сцены и код состояний. Перед запуском нужно добавить в уровень
NavigationRegion3D и запечь навигационную сетку, иначе враг не сдвинется с места.