【Unity 学习笔记】动画系统(续)和事件

在上一篇笔记中,我们使用Unity的动画系统实现了移动和跳跃的动画,在这一篇笔记中我们将使用Unity事件的方式来实现受伤和死亡的动画。

首先创建一个受伤动画。由于素材中没有现成的受伤动画,我们只能手动创建一个简陋的闪烁动画。主要现实在角色受伤后的无敌时间人物闪烁的效果。

步骤:新建一个动画片段。点击Add Property,添加Sprite中的Color。

调整一下关键帧,是动画时常变为1秒。

在0.5秒处,我们将Color.a修改为0.5,这样就实现了角色的闪烁动画。

同时,可以将人物调整为红色,如此更符合普遍认知。

接着,我们在动画控制器中新建一个层级,调整其权重至1,并且将混合模式修改为Addictive。

因为我们这次使用的时间的方式触发动画,所有新建了一个条件参数hurt。

如果hurt触发了,则执行对应事件。

 我们需要手动添加UnityEvents,该类包含在UnityEngine.Events里,使用前需先引用命名空间。

添加受伤和死亡事件:


    [Header("事件")]

    public UnityEvent<Transform> onTakeDamage;

    public UnityEvent onDie;

返回unity查看一下。

可以看到我们的事件已经在Inspector窗口中显示出来了。

点击加号就可以添加相应的方法了,该方法会在事件触发时调用。

那么怎样才能触发事件呢,回到我们的脚本文件,通过Invoke()方法可以触发事件。

onDie?.Invoke();

一旦事件触发,其下的所有方法都会执行。

接着开始设置受伤动画的条件,一旦受伤,条件参数hurt就需要触发,我们需要用SetTrigger()实现这个功能。

    public void PlayHurt()
    {
        anim.SetTrigger("hurt");
    }

将其封装到一个方法里,并添加到事件中,hurt参数的传递就是随着事件的发生而发生。

这样受伤动画就实现了。

死亡动画和受伤动画的制作步骤相同。

首先添加条件参数die,绑定死亡事件,事件触发,死亡动画播放,不做重复演示。

同时,在动画片段中我们也可以添加事件。Unity已经为我们自动写好了模板,方便我们在动画开始、动画播放中、动画结束时实现各种各样的方法。

命名一下脚本文件,打开。

根据提示取消注释,添加需要的代码。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

白沙清水

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值