脚本控制animation的事件

由于动作设计经常修改动作,所以每次改完都要再添加一次animation的事件,所以就直接写了个脚本,当然以后可以做成表格,然后用脚本从表格中读取,然后生成对应的animation事件。在Assets/Editor目录中放置代码,参考代码如下:

using UnityEngine;
using System.Collections;
using UnityEditor;
public class AddEventsToAnimations : MonoBehaviour {
 [MenuItem("Assets/Demo2/Add animations events")]  //添加到editor的menu
 static void AddEvents()
 {
         float t = 0.03333f;
         int i = 0;
         string attack01str = "Assets/My Project/Raw Data/Character/Hero/Anis/Attack01.anim";

         const int nLen = 4;
         AnimationEvent[] arr = new AnimationEvent[nLen];  

//设置了3个点添加事件
  int[] attack01time = new int[nLen-1]{10,25,40};

//装载动画
  AnimationClip attack01clip =  AssetDatabase.LoadMainAssetAtPath(attack01str) as AnimationClip;
  if (attack01clip == null)
  {
   Debug.Log("attack 01 clip is null");
   return;
  }

//添加事件
  for (i = 0; i < attack01time.Length; i++)
  {
   AnimationEvent attack01 = new AnimationEvent();
      attack01.functionName = "NotifyAttack1";
      attack01.time = t * attack01time[i];
   arr[i] = attack01;
  }

//这里是添加结束事件,看自己是不是需要了
  AnimationEvent attack011 = new AnimationEvent();
     attack011.functionName = "NotifyAttackEnd";
     attack011.time = t * 70;
  attack011.stringParameter = "Attack01";
  arr[i] = attack011;  

//用editor函数设置此动画的事件
  AnimationUtility.SetAnimationEvents(attack01clip, arr); 
}

http://jiaowodouge.blog.163.com/blog/static/187245168201171142327625/

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值