Unity Networking: как синхронизировать анимацию на дочернем объекте?

Я делаю мультиплеер, но я застрял в синхронизации анимаций. Моя текущая иерархия игроков следующая:

введите описание изображения здесь

Проблема в том, что морской объект использует IK для наведения вверх / вниз, что означает, что я использую функцию OnAnimatorIK. Чтобы использовать OnAnimatorIK, компонент Animator должен быть присоединен к тому же игровому объекту, что и скрипт, с помощью OnAnimationIK. Это значит, что я должен прикрепить Animator к игровому объекту Marine. Если я делаю это, все работает нормально (если не пытается сетевой анимации).

Теперь, если я присоединю Network Animator к объекту Player, анимация не будет обновляться удаленно. Когда я пытаюсь присоединить Network Animator к объекту Marine, автоматически добавляется компонент Network Identity, и его невозможно удалить. Если я пытаюсь построить с компонентом Network Identity, подключенным к объекту Marine, я получаю сообщение об ошибке "У вас может быть только один идентификатор сети, и он должен быть присоединен к корневому объекту". Это означает, что я должен переместить свой компонент Animator, а также скрипт PlayerIKHandler в объект Player, чтобы избавиться от дублированного компонента Network Identity.

Если я перемещаю компонент Animator в объект Player, это нарушает мою анимацию (модель стоит в T-позе), и я не вижу ничего оживляющего даже локально.

Очевидно, что я делаю что-то не так, я просто не знаю почему. Как я могу синхронизировать анимацию с помощью аниматора на дочернем объекте ИЛИ как я могу анимировать модель, если компонент аниматора присоединен к проигрывателю (просто фиктивная капсула со скриптами на ней).

0 ответов

Другие вопросы по тегам