2017-02-03 82 views
0

我找不出編寫簡單代碼的最佳方法。我需要在每個事件上播放動畫(例如點按)並停止動畫結束。Unity3d動畫返回空閒狀態

所以我有兩個動畫的對象:空閒和活動。和布爾變量「狀態」。 if state == false then idle animation will be run。
如果state == true,則將運行活動動畫。 點擊我將狀態更改爲true。

問題:

  • 如果狀態改變一次,然後值爲true和「活躍」的動畫將不再播放。

如果我會以某種方式趕上動畫(通過事件或檢查更新狀態)的結束和改變狀態回到假

  • 動畫應該是完成以重新啓動。

  • 架構變得非常困難(在情況下,如果我有這樣幾個對象這將是真正的爛攤子)

+0

請分享一些代碼,如你如何使用aniumation剪輯等 –

+0

您是否使用Animator組件或某種自定義解決方案來管理動畫? – Serlite

回答

0

假設你正在使用Mecanim,您可以使用trigger類型的參數,而不是布爾值。

0

我明白問題是狀態布爾值設置爲true,所以它開始動畫。在動畫結束時,它會回到空閒狀態,但由於布爾值爲true,它將轉回到再次播放動畫。

解決方案:在動畫中放置一個AnimationEvent(例如開始),並將其鏈接到將布爾值重置爲false的方法。 https://docs.unity3d.com/ScriptReference/AnimationEvent.html

然後當動畫結束時,它會轉回空閒狀態。由於布爾值已被重置,它將不會轉換回動畫,並且將保持空閒狀態,直到布爾值發生另一次更改。