之前說過unity的動畫系統相當好用,一般可以像flash般的方式製作動畫,而更重要的是動畫之間的轉換,例如走路動畫轉到跑步動畫,unity方便就在於,可以用圖形化的方式進行編輯,如下圖:

簡單來說就是可以藉由打勾某個標籤(如上就是),就能設定由哪個動畫變到哪個動畫,再搭配輸入按鍵,就可以做到基本的動作系統。這系統幾乎完整到讓人覺得只用這套系統就夠完成全部的動作系統,這樣就不用做例如說,假如現在是跳躍的動作,就不能攻擊這樣的程式。但實際上有兩個問題:
- 不具即時性:基本上偵測輸入按鍵是在一個叫update的程式裡,也就是所有判斷都由這裡開始。但是動畫狀態的更新,並不是立刻變,所以沒辦法做按了跳躍就不能攻擊這樣的判定,因為雖然按了跳躍,但他還沒真的變成跳躍,所以只要按的夠快,還是會攻擊。具体原因,應該在unity的機制。
- 輸入無法忽略:例如說跳躍時不能攻擊的話,即使在跳躍時按下攻擊,會判定現在是跳躍中,所以忽視這次的攻擊按鍵。但unity的話,雖然可以做到跳躍動作不能變成攻擊動畫,但那個輸入還是存在,所以會在跳躍完後又變成攻擊。
由以上的問題,就無法單純用unity的動作系統,做完所有邏輯,結果還是需要自己做一個動作系統,將邏輯跟顯示分開,unity的系統就單純用做動畫間的變化。
沒有留言:
張貼留言