Можно ли переформулировать вопрос о том, что скрипт работает правильно, потому что есть правильный вывод информации с помощью `print`, и добавлять скрипт для лучшего понимания?
Конечно, чтобы лучше понять почему NavMeshAgent не выполняет свои функции, можно переформулировать вопрос следующим образом: "Почему NavMeshAgent не движется к цели, хотя все методы и параметры установлены правильно?". Далее можно прикрепить соответствующий код скрипта для анализа и помощи в поиске причины проблемы.
То что бросается в глаза:
- использовать.GetHashCode()
какой-то странной подход. Если уж хочешь получить из энума номер то касти его к инту. А вообще для того энум и заводят, чтобы избавиться от магических цифр 1,2,4
- избавься отGetComponent
и вынеси всё что нужно в[SerializeField]
- использоватьсяFindObjectOfType()
на каждое изменение свойств это вообще зашквар, лагать должно неименоверно. Если нет у тебя GameManager как синглтона, ну хотя бы ищи его в сцене один раз на старте.