unity3d的Animation 動畫播放器的基本API


 

直接上代碼:

//動畫名稱  
  private const string ANIM_NAME = "Take 001";  
  //模型對象  
  private GameObject obj = null;  
  //動畫長度
  private float animLegth=0f;
  //動畫組件
  private Animation m_Animation=null;
 栗子代碼:
      //得到模型動畫  
      //obj = GameObject.Find("man");  
      //得到動畫的播放長度;舊版本可以直接獲取 obj.animation.animation[ANIM_NAME].length,5.X之后的應該都需要獲取Animation組件
      m_Animation = obj.GetComponent<Animation>();
     animLegth= m_Animation[ANIM_NAME].length;  
      //播放動畫 : 1 
      m_Animation.Play();//播放默認動畫
      m_Animation.Play("xx");//播放xx動畫,默認是停止同一層的其他動畫;作用同m_Animation.Play("xx",PlayMode.StopSamLayer);
      m_Animation.Play("xx",PlayMode.StopAll);//播放xx動畫,所有當前播放的動畫都停止
      //2:在一定時間內淡入名稱為animation的動畫
      m_Animation.CrossFade(string:animation);
      m_Animation.CrossFade(string:animation,float:time);
      m_Animation.CrossFade(string:animation,float:time,PlayMode:playMode);    
      //判斷動畫是否播放完畢;normalizedTime: 范圍0~1,  0是動作開始,1是動作結束;但是對於Animation好似沒用,Animator是可以的,建議可以嘗試下,判斷normalizedTime的值是否處於0.8~0.9嘗試,或者其他定時/委托
      if (m_Animation.IsPlaying("xx") && m_Animation["xx"].normalizedTime >= 1)  
      //倒放動畫
      m_Animation["xx"].speed = -1f*設置的動畫播放速度;
    //加速可以直接在正值的基礎上乘N倍 栗子:
m_Animation["xx"].speed = 1f*N;
    //停止播放動畫  m_Animation.Stop(); m_Animation.Stop("xx"); 

 

注:一個要格外注意的點,一旦用了倒放動畫,播放完畢之后,要恢復;不然動畫只播放一遍;

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM