unity-曲线和帧事件的使用

目录

曲线

获取曲线上的数值

添加Float参数

脚本打印

事件

设置动画事件的步骤

在脚本中实现事件函数


曲线

在动画模型的Animation选项中,有一个曲线设置。我们可以调整曲线随动画播放时的数值变化。用这些数值来做一些效果的变化。比如人物挥拳时的火焰特效,在刚开始的时候,火焰较小,然后逐步变大。通过设置一个数值从小逐渐增大的曲线,然后拿到每个时刻的曲线上的值,用于控制火焰的大小。

获取曲线上的数值

我们在跑步动画上设置了一个曲线

现在,我们要获取曲线的值。

添加Float参数

用于获取曲线的数值

注意,这个参数的名称要与曲线的名称保持一致

这样,当程序运行时,test的数值就会一直发生改变

脚本打印

事件

在 Unity 中,动画事件(Animator Events)允许你在动画的特定时间点触发脚本中的函数。这对于在动画播放过程中执行特定逻辑(例如,播放音效、触发粒子效果等)非常有用。

设置动画事件的步骤

  1. 打开动画窗口:在 Unity 编辑器中,选择需要添加事件的动画文件,然后在菜单栏中选择 Window > Animation > Animation 打开动画窗口。

  2. 选择动画剪辑:在动画窗口中,确保选择了你要添加事件的动画剪辑。

  3. 添加事件

    • 在动画窗口中,找到你希望添加事件的时间点。
    • 在时间轴上右键单击,然后选择 Add Animation Event。这将在该时间点创建一个事件标记。
  4. 配置事件

    • 选择刚刚创建的事件标记,你将在动画窗口下方看到 Function 字段。
    • 输入你想要调用的函数名称。这个函数必须存在于挂载在动画对象上的脚本中,并且应该是 publicprivate 方法。

在脚本中实现事件函数

Unity中,可以通过以下步骤来侦听动画事件: 1. 首先,确保你的动画包含了需要侦听的事件。在Unity动画编辑器中,选中你的动画片段,在Inspector面板中,展开"Events"部分。 2. 在"Events"部分,你可以添加和编辑动画事件。点击"Add Event"按钮来添加一个新的事件。 3. 每个事件包含一个名称和一个时间点。你可以在动画播放到指定时间点时触发事件。 4. 在你的代码中,你可以通过动画组件来侦听动画事件。获取到动画组件的引用后,可以使用`AnimationEvent`类来注册事件回调函数。 以下是一个示例代码,演示如何侦听动画事件: ```csharp using UnityEngine; public class AnimationEventListener : MonoBehaviour { public Animation animation; private void Start() { // 获取到动画组件的引用 animation = GetComponent<Animation>(); } private void OnEnable() { // 注册动画事件回调函数 animation.AnimationEvent += OnAnimationEvent; } private void OnDisable() { // 取消注册动画事件回调函数 animation.AnimationEvent -= OnAnimationEvent; } private void OnAnimationEvent(AnimationEvent animationEvent) { // 在这里处理动画事件 Debug.Log("Received animation event: " + animationEvent.stringParameter); } } ``` 在上述示例中,我们首先获取到动画组件的引用,然后在`OnEnable`方法中注册事件回调函数,`OnDisable`方法中取消注册。当动画事件触发时,会调用`OnAnimationEvent`方法来处理事件。 记得将上述代码附加到包含动画的游戏对象上,并设置正确的动画组件引用。这样,你就可以侦听和处理动画事件了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值