在上一篇笔记中,我们使用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已经为我们自动写好了模板,方便我们在动画开始、动画播放中、动画结束时实现各种各样的方法。

命名一下脚本文件,打开。
根据提示取消注释,添加需要的代码。
文章介绍了如何在Unity中创建受伤和死亡的动画效果。通过新建动画片段和调整颜色关键帧来制作闪烁的受伤动画,并利用UnityEvents添加受伤和死亡事件。当条件参数触发时,通过Invoke方法调用事件,播放相应动画。此外,还提到了在动画片段中添加事件的模板方法。
和事件&spm=1001.2101.3001.5002&articleId=130330451&d=1&t=3&u=536502b3f3b54f6cba8aa768eb576a81)
1224

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



