Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/331.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在animationClips中找不到runtimeAnimationController哈希_C#_Unity3d - Fatal编程技术网

C# 在animationClips中找不到runtimeAnimationController哈希

C# 在animationClips中找不到runtimeAnimationController哈希,c#,unity3d,C#,Unity3d,我有一个脚本,它告诉我runtimeAnimationController当前正在为角色播放哪个动画片段 我在某些角色上使用这个脚本没有任何问题,但现在我有一个角色,在动画剪辑列表中找不到当前动画的哈希 我不知道这个问题的原因可能是什么 我认为我的代码绝对安全。 当我在VisualStudio中创建一个断点并检查动画剪辑列表时,我可以看到当前播放的哈希确实不在列表中 当前正在播放的动画的哈希值也不是0,当动画控制器播放不同的动画时,哈希值会发生变化 有人知道为什么在没有找到散列的情况下会出现这种

我有一个脚本,它告诉我runtimeAnimationController当前正在为角色播放哪个动画片段

我在某些角色上使用这个脚本没有任何问题,但现在我有一个角色,在动画剪辑列表中找不到当前动画的哈希

我不知道这个问题的原因可能是什么

我认为我的代码绝对安全。 当我在VisualStudio中创建一个断点并检查动画剪辑列表时,我可以看到当前播放的哈希确实不在列表中

当前正在播放的动画的哈希值也不是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");
}

您正在将
AnimatorStateInfo
的哈希值与剪辑的哈希值进行比较。您应该改为使用,并检查它返回的对象数组。每个都有一个
.clip
属性。

@Foggzie\u animator.layerCount返回1。好的,很高兴知道。您使用
GetCurrentAnimatorStateInfo
而不是?您正在将状态信息的哈希值与剪辑的哈希值进行比较。我假设您正在尝试这样做,您似乎应该使用后面的函数,并检查它返回的对象数组。每个都有一个
.clip
属性。@Foggzie谢谢。你的方法对我很有效。我在一个旧的Unity帖子中找到了我的方法,我想你的方法在当时并不存在。也许你可以把你的评论作为答案?@Foggzie我相信问题在于动画不是一个“独立”的动画,而是连接到一个网格/装备。你认为我应该发布错误报告,还是我的方法不再有用了?好主意!有时我在评论中漫无目的地说:P和我不会报告一个bug;我不认为状态信息散列和剪辑散列是预期的行为。