unity_animator_stop_replay(從新播放)

對於一個Animation重複播放,但在隱藏後,再次顯示播放會出現有些屬性未復原c#

問題描述

特效同事給的Animation中更改了物體的不少屬性,如Active,Alpha, Scale,Position等等,物體自己須要重複利用,所以當不須要使用時不直接銷燬而是隱藏等須要時再顯示,可是在隱藏後發現再次顯示的時候有些屬性不會自動復原。測試

解決辦法

  1. 在Animator Controller中添加一個空的 Animator State 爲New State,並拷貝動做相同的 animation clip
  2. 設置 New State 的 Speed 爲 0 ,讓動畫不會播放且停在第1幀
  3. 設置 New State 爲 Default State (默認播放)

重複播放

m_animator.Play("attack_1",0,0f);

狀態重置

當動畫播放完成後,重置狀態動畫

// 重置Animator
public void ResetAnimator(){
    m_animator.Play ("New State");
}

如上所說在放進對象池以前(即acitve設爲false以前)把動畫狀態機(Animator)設置爲播放第一個動畫(Animation),而後刷新狀態(調用ResetAnimator())便可。.net

其它信息

部分參考:https://blog.csdn.net/u013236878/article/details/52813994,但做者提到的方法我測試不可行code

m_animator.Play ("New State");
m_animator.Update (0);

個人Unity版本: Unity5.3.7對象

相關文章
相關標籤/搜索