【Unity】因使用混合树而导致的奇怪Bug(已修复)
问题描述
今天使用Unity时发现:物体没有按照动画设置的参数运动。
我为人物设置了攻击动画,由于人物不对称,故左右独立设置。如图是其中一段动画,其中设置了攻击区域触发器的变化动画。
但当我运行时,攻击区域触发器却发生了奇怪的位移,跟动画clip中的设置不一致。
问题排查
经过2小时的折磨,在同学的帮助下终于锁定问题关键:
我使用了 混合树 来控制人物的左右攻击,恰恰就是这个混合树出了问题。
结论就是:混合树将我的左右两个动画的攻击区域触发器的各项参数进行混合,其中就包括了触发器形状的offset!这导致两个动画各自触发器形状的offset叠加而抵消,使其最后显示的offset的x值始终在0附近。
问题解决
最后简单粗暴地解决了:放弃使用混合树控制左右动画。经过检验这样是可行的。
原本我使用混合树仅仅只是想优化一下拓扑结构。。。现在不能这么玩了。
我创建了子状态机,然后把攻击动画的逻辑全塞里面。。。让他看起来。。额。。至少没这么复杂(大概)。
【Unity】因使用混合树而导致的奇怪Bug(已修复)
https://chordfish-k.github.io/2023/01/11/unity/unity-20230111/