unity animation readonly 无法加事件?


 

目前找到的解决方案是用代码加Event:

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

public class NewBehaviourScript : MonoBehaviour {

    public bool b = false;
    public bool b1 = true;

    
    public AnimationEvent mEvent;
    


	// Use this for initialization
	void Start () {

       Animation a =  this.GetComponent<Animation>();

       int count = a.GetClipCount();

        foreach (AnimationState state in a)
        {
            
            Debug.Log("AnimationState:" + state.name);
        }

        mEvent = new AnimationEvent();
        mEvent.functionName = "Skill_01";
        mEvent.time = 5.0f;//0.18f;

        a.clip.AddEvent(mEvent);

       
        a.Play();
        
        Debug.Log("clip:" + a.clip.name);


        Debug.Log("count:" + count.ToString());

		
	}

    public void Skill_01()
    {

        Debug.Log("Skill_01 Run!");

    }
	
	// Update is called once per frame
	void Update () {

        if(b && b1)
        {
            b1 = false;
            Animation a = this.GetComponent<Animation>();
            //a.CrossFade("eat", 4.0f);
            //a.CrossFade("eat"); //like play
            a.Play("eat");
        }

		
	}
}

  

  

 注意time不能超过动画的长度,否则会等这个时间


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM