스크립트 제어 애니메이션 이벤트

4966 단어 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/

좋은 웹페이지 즐겨찾기