PragmaGames
@PragmaGames
Увлекаюсь Unity.

Почему после переактивации объекта, Animator стал работать некорректно?

Добрый день, друзья. На объекте висит аниматор и воспроизводит анимации.
В определенный момент, объект становится неактивным [gameObject.SetActive(false)], после чего объект снова активируется [gameObject.SetActive(True)] , но анимация воспроизводится некорректно, аниматор перестал реагировать на изменения в параметрах. Простой пример : Есть две анимации, движение персонажа влево и вправо, за это отвечает параметр float LookDirection, когда он равен 1, анимация движения право, -1 влево. Изначально все работает правильно, но после переактивации объекта анимации персонажа перестают меняться игнорируя передачу параметра.
Параметр передается так :
_playerAnimator.SetFloat("LookDirection", _lookDirection);
Если запросить значения через GetFloat("LookDirection") увидим что параметр передан корректно, но переключение между анимациями не происходит.

P.S На многих форумах данный вопрос неоднократно поднимался, но обычно оставался без конкретного ответа.

60bcf2aaf31d8148138461.png.

60bcf2bf8ba13482412401.png

60bcf2c93d975550282470.png

60bcf2d200c98679748069.png
  • Вопрос задан
  • 26 просмотров
Решения вопроса 1
PragmaGames
@PragmaGames Автор вопроса
Увлекаюсь Unity.
Я неожиданно нашел ответ. Решение заключается в том что бы сохранить параметры аниматора после его отключения, я не понимаю почему оно работает, но работает. Если кто-то понимает как это устроено буду рад услышать !

private void Start()
{
     _playerAnimator.keepAnimatorControllerStateOnDisable = true;
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы