Unity-狀態(tài)機(jī)基礎(chǔ)
狀態(tài)機(jī)的基本思想是使角色在某一給定時刻進(jìn)行一個特定的動作。動作類型可因游戲類型的不同而不同,常用的動作包括空閑、行走、跑步、跳躍等,其中每一個動作被稱為__一種狀態(tài)。在某種意義上,角色處于行走、空閑或者其它的“狀態(tài)”中。一般來說,角色從一個狀態(tài)立即切換到另一個狀態(tài)是需要一定的限制條件的。比如角色只能從跑步狀態(tài)切換到跑跳狀態(tài),而不能直接由靜止?fàn)顟B(tài)切換到跑跳狀態(tài)。角色從當(dāng)前狀態(tài)進(jìn)入下一個狀態(tài)的選項被稱為狀態(tài)過渡條件。狀態(tài)集合、狀態(tài)過渡條件以及記錄當(dāng)前狀態(tài)的變量放在一起,形成了一個__狀態(tài)機(jī)。
狀態(tài)及其過渡條件可以通過圖形來表達(dá),其中的節(jié)點(diǎn)表示狀態(tài),而弧線(節(jié)點(diǎn)間的箭頭)表示狀態(tài)過渡。您可以將當(dāng)前狀態(tài)視為放置在節(jié)點(diǎn)之一上的標(biāo)記或亮點(diǎn),然后只能沿箭頭之一跳轉(zhuǎn)到另一個節(jié)點(diǎn)。

狀態(tài)機(jī)對于動畫的重要意義在于用戶可以通過很少的代碼對狀態(tài)機(jī)進(jìn)行設(shè)計和升級。每一個狀態(tài)有一個與之關(guān)聯(lián)的運(yùn)動,只要狀態(tài)機(jī)處于此狀態(tài),就會播放此運(yùn)動。從而讓動畫師或設(shè)計師方便地定義動作順序,而不必去關(guān)心底層代碼的實(shí)現(xiàn)。
狀態(tài)機(jī)
Unity的動畫狀態(tài)機(jī)提供了一種縱覽角色所有動畫剪輯的方法,并且允許通過游戲中的各種事件(如用戶輸入)來觸發(fā)不同的動畫效果。
動畫狀態(tài)機(jī)可以通過?Animator Controller 窗口來創(chuàng)建,這些狀態(tài)機(jī)如下所示:

動畫狀態(tài)機(jī)包括__動畫狀態(tài)、動畫過渡__和__動畫事件__,而復(fù)雜的狀態(tài)機(jī)還可以含有簡單的子狀態(tài)機(jī)。請參閱動畫狀態(tài)和動畫過渡的參考頁面來了解更多信息。