• unity 代码添加AnimationEvent


    经过测试只要Animator跟继承monoBehaviour的类A在同一个节点上,就可以注册类A中的public 方法,含0或1个参数(int,float,object,string),注意:只能是0或1个参数



    using UnityEngine;
    
    class TAnimEvent:MonoBehaviour
    {
    	[SerializeField]
    	private Animator mAnimator;
    
    	public bool abc;
    
    	void Start()
    	{
    		mAnimator = this.GetComponent<Animator>();
    		RuntimeAnimatorController m_runtimeAnimatorController = this.GetComponent<Animator>().runtimeAnimatorController;
    		AnimationEvent newEvent = new AnimationEvent();
    		newEvent.functionName = "Print";
    		newEvent.time = 0.0f;
    		newEvent.intParameter = 9;
    		//newEvent.floatParameter = 9.0f;
    
    
    		AnimationClip[] clips = m_runtimeAnimatorController.animationClips;
    		for (int i = 0; i < clips.Length; i++)
    		{
    			Debug.Log("Nafio -------!!");
    			if (clips [i].name == "Fuck") {
    				Debug.Log("Nafio find TAnim!!");
    				m_runtimeAnimatorController.animationClips[i].AddEvent(newEvent);;
    			}
    		}
    		mAnimator.Rebind();
    	}
    		
    	void Print(int a)
    	{
    		Debug.Log ("Nafio---PrintEvent!!!  a:"+a);
    	}
    
    
    }



    		AnimatorStateInfo currentState = animator.GetCurrentAnimatorStateInfo(0);
    		if (currentState.nameHash == Animator.StringToHash("Base Layer.Idle"))
    		{
    			if (!hasSet) {
    				Action act = new Action();
    				act.Att = this.transform;
    				act.Def = this.transform;
    				
    				AnimationEvent evt = new AnimationEvent();
    				evt.time = 0;
    				evt.functionName = "Test";
    				evt.objectReferenceParameter = act as Object;
    				
    				AnimationInfo[] info = animator.GetCurrentAnimationClipState(0);
    
    				foreach (AnimationInfo i in info) {
    					i.clip.AddEvent(evt);
    					hasSet = true;
    				}
    			}
    		}
    


  • 相关阅读:
    Codeforces Round #589 (Div. 2) D. Complete Tripartite(染色)
    Codeforces Round #589 (Div. 2) C
    Codeforces Round #589 (Div. 2) B. Filling the Grid
    Codeforces Round #589 (Div. 2) A. Distinct Digits
    Codeforces Round #590 (Div. 3) E. Special Permutations
    常见类
    集合中元素大小的可排序问题
    集合练习——Map部分
    集合练习——Set部分
    集合练习——List部分
  • 原文地址:https://www.cnblogs.com/nafio/p/9137159.html
Copyright © 2020-2023  润新知