第十四节、受伤、死亡的逻辑和动画

一、受伤的动画效果

1齿轮控制当前动画图层的权重

2、层级

当前动画层为add,所以不会覆盖之前的动画层,而是添加一个动画层

3、受伤闪烁

调用颜色的值,实现受伤闪烁

4、录制动画

点击时间轴,插入关键帧

伤害图层选择add,填入动画状态,进行连接

设置参数Trigger

条件为触发

播放完即可返回

二、动画器关联代码

1、打开PlayerAnimation代码

2、由于Trigger是单次执行的方法,不能放在update中,单独创建一个方法

三、UnityEvent(事件)

此处,人物受伤减血,可能触发声音、位移、闪烁、动画

如何触发多个,即为事件

1、必须调用命名空间

2、开始创建事件

1、类型

创建类型为Event

《》中传入信息(此处受伤后退,传入transform)

OnTakeDamage是自定义的事件名

2、方法

在此处事件触发,即可调用所有的添加方法



3、启动事件

固定的写法

“ 事件名?.Invoke ”

事件有一个transform参数    传入攻击者的攻击方向

四、人物受伤反弹

1、定义两个变量

2、定义一个受伤的方法,传入参数

受伤害为真

XY的值为零,也就是停止运动

计算人物方向:当前位置  减去  攻击者位置 (我左为负,我右为正)乘以反弹力

如果玩家距离攻击者远,这个值可能会很多大,此时需要归一化,normalize

3、给刚体添加力的作用

取反

函数中调用的参数和事件中的参数一致,即可快速选择此方法

五、动画状态机

此时玩家受到碰撞后一直为受伤状态

1、在动画上添加代码

2、动画状态机

此代码是一个继承动画状态机,是一个写好代码的模板

包含动画进入、持续、退出

只需删除注释,即可使用

在这里设置为

false

六、玩家死亡

1、创建玩家死亡状态和方法

2、关闭所有状态

3、设置参数

4、增加事件

5、Loop循环动画

此时人物一直播放死亡动画

由于连接任何状态,部分动画不需要循环播放,取消勾选即可

  • 19
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值