unity, AnimatorCullingMode的一个bug


我在一个fbx节点上添加了一个Animator,CullingMode设置为Cull Update Transforms(即如果没有激活的SkinnedRenderer就不更新骨骼动画),然后我将这个fbx的子节点中所有的SkinnedMeshRenderer都disable掉,然后为这个fbx节点添加一个子节点a,并在a上新建了个SkinnedMeshRenderer,然后播放动画,发现unity会认为此时“没有激活的SkinnedMeshRenderer”,此时查看各骨骼的Transform值都是静止不变的。
然后我在这个fbx节点的脚本上添加了下面几句:
        AnimatorCullingMode oldAnimatorCullingMode = gameObject.GetComponent<Animator> ().cullingMode;
        gameObject.GetComponent<Animator> ().cullingMode = AnimatorCullingMode.AlwaysAnimate;
        gameObject.GetComponent<Animator> ().cullingMode = oldAnimatorCullingMode;
即先把animatorCullingMode设置成alwaysAnimate,然后再立刻设回来。
结果好了。
 
注:如果新建的SkinnedMeshRenderer不是添加在fbx节点的子节点a上,而是直接添加到Animator所在的fbx节点上,则不会出现此问题。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM