巧用Unity的Animator的动画层(Layer)实现跑动中攻击和受击

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

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

1.建立base层,控制 “idle”, “attack”, “hit”,“die”的切换

这个之间的切换都使用各自的trigger来切换。其中设置“die”可以被anystate切换去。

2.建立Run层,控制“run”

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

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值