需求是这样的,角色在待机和跑动中都可以攻击也可能受击,但如果是跑动切到攻击和受击时同时还要保持跑动的动画,同样的待机切换的,执行完后就是待机动画。如果只用一层,Animator Controller 就很复杂,还可能额外编写较多的其他代码。这里有个难点在于,当正在跑时,想执行攻击,用trigger即可,但如果攻击执行完以后,该执行什么?按理说,应该是回到跑。但是,不仅仅是跑动中可以攻击,而是待机中也可以攻击。如果这要通过代码实现,可能比较冗长。不过如果用两层动画层,就很容易实现。
1.建立base层,控制 “idle”, “attack”, “hit”,“die”的切换

这个之间的切换都使用各自的trigger来切换。其中设置“die”可以被anystate切换去。
2.建立Run层,控制“run”

默认状态是null,也就是这上面没有任何动画,是空的, “null”和“run”的切换用个bool值控制。最后的参数和层看起来如下

<

在Unity中,为了处理角色在跑动、待机时执行攻击和受击动作,并保持原有运动状态,文章介绍了如何利用Animator的多层(Layer)功能简化控制器设计。通过建立base层和Run层,分别处理基本动作和跑步动作,通过trigger和bool值控制动画切换。通过调整权重,使得跑动和攻击动作能够混合播放,实现了跑动中攻击的效果。当攻击或受击动作完成后,通过代码使其返回idle状态,保持动画控制的简洁性和效率。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



