XDreamer狀態(tài)機工作原理
狀態(tài)機
狀態(tài)機是表現(xiàn)和控制邏輯執(zhí)行流程的一種模式。狀態(tài)機每個節(jié)點作為一個狀態(tài)(執(zhí)行邏輯)的表示,節(jié)點與節(jié)點之間用連線來表示它的跳轉(zhuǎn),連線上有跳轉(zhuǎn)條件。當狀態(tài)完成并且跳轉(zhuǎn)條件也滿足時就會將切換到后續(xù)狀態(tài)節(jié)點上。
狀態(tài)
狀態(tài)是一個承載某個功能的工作片段。有進入、更新和退出三種狀態(tài)。
進入
【進入狀態(tài)】是狀態(tài)機入口?!具M入狀態(tài)】在狀態(tài)機啟動后就激活,在整個狀態(tài)機生命周期內(nèi)只激活一次,并且只能連出跳轉(zhuǎn)。
任意
【任意狀態(tài)】是狀態(tài)機在工作期間內(nèi)會不斷激活其后續(xù)狀態(tài)節(jié)點的入口。隨著它所在的狀態(tài)機或者子狀態(tài)機而激活,在跳轉(zhuǎn)發(fā)生后的下一個執(zhí)行流中重新激活,并且只能連出跳轉(zhuǎn)。
退出
【退出狀態(tài)】是狀態(tài)機的出口。當【退出狀態(tài)】被激活,并切換為完成態(tài)后,整個狀態(tài)機退出并切換為非激活態(tài),并且只能連入跳轉(zhuǎn)。
狀態(tài)生命周期:
1、子狀態(tài)機
子狀態(tài)機是可嵌套的狀態(tài)機??汕度霠顟B(tài)機或子狀態(tài)機內(nèi)。
2、進入
狀態(tài)轉(zhuǎn)變?yōu)榧せ顣r執(zhí)行進入操作。
3、更新
狀態(tài)處于激活態(tài)時,每幀執(zhí)行更新操作。
4、退出
狀態(tài)轉(zhuǎn)變?yōu)榉羌せ顣r執(zhí)行退出操作。
重置
重置狀態(tài)會讓狀態(tài)變成非激活。重置狀態(tài)機則將狀態(tài)機內(nèi)所有狀態(tài)設置為非激活。
跳轉(zhuǎn)
跳轉(zhuǎn)是狀態(tài)與狀態(tài)之間過渡條件。默認是無條件跳轉(zhuǎn)。
