У меня есть скрипт, который сообщает мне, какой анимационный клип runtimeAnimationController воспроизводит для персонажа.
Я использую этот скрипт без каких-либо проблем с некоторыми персонажами, но теперь у меня есть один персонаж, в котором хэштекущей анимации не найдено в списке анимационных клипов.
Я не знаю, в чем причина этой проблемы.
Я думал, что мой код абсолютно безопасен.Когда я создаю точку останова в Visual Studio и проверяю список клипов анимации, я вижу, что воспроизводимый в настоящий момент хэш действительно отсутствует в списке.
Хэш текущей воспроизводимой анимации также не равен 0, и это делаетизменить, когда контроллер анимации воспроизводит другую анимацию.
Кто-нибудь видит, почему может возникнуть условие, когда хеш не найден?
Я имею в виду, что при воспроизведении анимации эта анимация ДОЛЖНА бытьв списке анимационные клипы, верно?
Большое спасибо за помощь!
private void pTellAnim()
{
AnimatorStateInfo stateInfo = _animator.GetCurrentAnimatorStateInfo(0);
int iCurrentAnimationHash = stateInfo.shortNameHash;
foreach (AnimationClip nClip in _animator.runtimeAnimatorController.animationClips)
{
int iHash = Animator.StringToHash(nClip.name);
if (iHash == iCurrentAnimationHash)
{
Debug.Log("Currently playing " + nClip.name + "\n");
return;
}
}
Debug.Log("Clip not found for hash " + iCurrentAnimationHash.ToString() + "!!!!\n");
}