AnimatorStateInfo(0).IsName возвращает, заканчивается ли состояние определенным словом

#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. Правда просто вышла из «Все мои анимации называются» и «перебираю все мои анимации» и занялась решением проблем, так как они продолжали упоминать анимации, а не состояния. Но пропустил главный вопрос.