#c# #unity3d #animation
Вопрос:
Я новичок в 2D-анимации в unity и хотел написать сценарий, который определяет направление, в котором находится мой персонаж, в зависимости от того, какая анимация воспроизводится. Все мои анимации называются что-то вроде idleL
или walkingL
.
В данный момент я просматриваю все свои анимации, чтобы определить, в какую сторону смотрит персонаж с помощью AnimatorStateInfo(0).IsName.
Можно ли просто определить, заканчивается ли анимация символами L, R, U или D, используя эту функцию?
Любые ответы будут высоко оценены.
Комментарии:
1. Просто любопытно, почему вы определяете ориентацию на основе анимации, а не на самом движении?
2. @Armin Я знаю, как это сделать, хотя движение, и я хотел посмотреть, смогу ли я сделать это с помощью анимации. В данный момент я не работаю над проектом, и мне было любопытно посмотреть, как это делается. Никогда не знаешь, может, когда-нибудь это пригодится.
3. Ах, я понимаю, ну, если unity не благословит нас getName() в информации о состоянии аниматора, это будет довольно сложно
4. Мы можем только надеяться. В любом случае, спасибо @Armin
5. Во время выполнения аниматор использует только хэши ! Невозможно напрямую получить имя состояния аниматора во время выполнения. Вот почему существует также только
IsName
потому, что он хэширует данное имя и проверяет, соответствует ли оно хэшу состояний …
Ответ №1:
Вы можете получить доступ к названию клипа с помощью GetCurrentAnimatorClipInfo. Вы можете увидеть, как это сделано в примере в документах.
//Get them_Animator, which you attach to the GameObject you intend to animate.
m_Animator = gameObject.GetComponent<Animator>();
//Fetch the current Animation clip information for the base layer
m_CurrentClipInfo = this.m_Animator.GetCurrentAnimatorClipInfo(0);
//Access the Animation clip name
m_ClipName = m_CurrentClipInfo[0].clip.name;
Комментарии:
1. Однако название клипа может отличаться от названия штата …
2. Правда просто вышла из «Все мои анимации называются» и «перебираю все мои анимации» и занялась решением проблем, так как они продолжали упоминать анимации, а не состояния. Но пропустил главный вопрос.