Unity动画:两种方法实现无间断从头重复播放动画
生活随笔
收集整理的這篇文章主要介紹了
Unity动画:两种方法实现无间断从头重复播放动画
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
方法一:使用animator.SetBool()
假設需要重復播放的動畫叫BeAttack
在進入BeAttack的Transition中,取消勾選Has Exit Time,將Interruption Source從None改為Current State(可以被自己打斷)
最后給BeAttack掛一個動畫腳本,重寫動畫狀態函數(OnStateEnter),在進入動畫時將條件設為否,以達到無間斷切換狀態
(并不需要像網上說的,自己連自己的Transition)
方法二:使用animator.Play()
方法二較方法一簡單。假設需要重復播放的動畫叫Fire,只需要設置從Fire到Empty的單向Transition即可
執行順序
如果同時使用上述兩種方法,預期是同時播放兩組動畫,但實際上Unity總是會先播放在Play()中調用的動畫(與兩者調用的順序無關,就算是SetBool先調用也會先執行Play的部分)。原因在于,在Unity的生命周期中,Update()的調用順序先于動畫更新,而SetBool僅僅更新動畫機參數,并不會馬上更新動畫機
解決方案
從Fire連一個transition到BeAttack(加上判斷條件),調整一下Transition Duration
可以看到Fire和BeAttack同時播放,符合預期
總結
以上是生活随笔為你收集整理的Unity动画:两种方法实现无间断从头重复播放动画的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql 触发器 定时触发器_MYSQ
- 下一篇: 前端面试常见问题和技术解决方案