Unity功能点---Unity动画的事件(在任一帧添加关联事件)

当我们需要在动画播放到某一帧的时候同时发生一个事件,比如对人物造成伤害,或者使某些物体隐藏出现等,我们可以通过动画时长来计算帧数,然后在某个动画的某个时间进行事件的触发,这种方法通常可能会使事件不能完全对上某一帧,我们可以直接通过编辑动画在动画帧上添加事件来完成我们需要的功能。

我们在Unity里面编辑的动画可以直接在动画编辑界面处理添加事件的方法,通过外部导入的动画通常是只读的,需要找到动画点击Editor编辑并且手动输入事件方法,做个演示:

首先是Unity制作的动画,我在一个Player身上创建了一个动画(选中Player---Windows---Animation),如下:

这是一个简单的移动动画,在动画起始和动画结束分别添加了事件,点击到对应的事件会出现这样的面板:

可以看到没有方法进行选择,我们写个脚本挂在Player上面。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class PlayerAnimEvent : MonoBehaviour {

    public void PlayerAnim(string s)
    {
        Debug.Log(s);
    }
}

我们再次选中事件,选择方法:

可以看到我们刚才的方法,选择方法并输入对应的参数。

先放着不看效果,我们看导入的外部动画;

通过Unity自带的Animation打开:

可以看到没有办法编辑。我们点击动画的Inspector面板的Editor:

展开效果:

我们拖动到最后面添加一个事件:

可以看到添加事件自动添加可一个名字叫NewEvent的方法,下面有四个类型的参数,我们来修改它:添加一个脚本到这个动画物体上:

using System.Collections.Generic;
using UnityEngine;

public class PangXieAnimEnvent : MonoBehaviour {

    public GameObject Player;

    public void PangXieAnim(int i)
    {
        Debug.Log(i);
        Player.SetActive(true);
    }

}

这个事件的作用就是动画完成后做一个自定义的打印,并且使Player出现,然后Player会播放自身的动画和事件。

再次打开动画编辑,点击事件,把方法名改成脚本的方法名并且在Int参数栏填入参数:

看下演示效果:

 

另外,如果我们不是选中Player而是选中Player的动画,在通过Window---Animation打开动画编辑然后选中事件会看到这样的界面:

可以看到之前配置好的事件,当然也可以在这里直接做修改,就不做演示了。

欢迎加群:4364930讨论。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值