Целочисленное обновление аниматора для одного, но не другого - PullRequest
0 голосов
/ 16 апреля 2019

У меня есть левая рука и правая рука с аниматорами.Я сделал левый контроллер, скопировал и переименовал его как правый, затем изменил этапы для анимации правой руки, в отличие от анимации левой руки.Затем я использую точно такой же код, который прикреплен как к правому, так и к левому объекту gameObject, который говорит, что нужно получить аниматор и установить целочисленное значение «HandPosition» для аниматора равным нумерованному значению «open» или «shield» и т. Д.«Положение руки» правой руки обновит значение, а левой - нет.Это навсегда остается нулевым.Аниматор на каждой руке явно имеет значение «Контроллер», установленное соответственно для левой и правой версий контроллера аниматора.Зачем, черт возьми, обновлять одно целое число, но не другое?Они копируются, запускают один и тот же код, и это даже не ошибка.Я могу запустить следующий код, и одна рука покажет его обновление, а другая скажет, что он обновляется до «2», а затем новое значение по-прежнему «0».У меня нет идей!

Debug.Log("Setting " + hand + " to position " + handPosition + "(" + (int)handPosition + ")");
animator.SetInteger("HandPosition", (int)handPosition);
Debug.Log("New position is " + animator.GetInteger("HandPosition"));

enter image description here

1 Ответ

0 голосов
/ 16 апреля 2019

Очевидно, что это не ошибка, когда вы даете фиктивное целочисленное имя или даже когда контроллер отсутствует в сценарии аниматора, чтобы даже попытаться получить целочисленное имя. Интересная "особенность" ... Итак, в моем случае, на моем объекте был, по-видимому, второй аниматор, о котором я не знал, и код захватывал тот, а не тот, который я настроил правильно, и молча не мог найти то, что Я искал.

...