溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

U3d架構(gòu)系列之-FSM有限狀態(tài)機(jī)設(shè)計(jì)一

發(fā)布時(shí)間:2020-07-08 20:08:01 來(lái)源:網(wǎng)絡(luò) 閱讀:20434 作者:jxw167 欄目:開(kāi)發(fā)技術(shù)

   

        我們?cè)谟螒蜷_(kāi)發(fā)中經(jīng)常面臨架構(gòu)設(shè)計(jì)問(wèn)題,在蠻牛問(wèn)答里面也有好多朋友問(wèn)關(guān)于架構(gòu)方面的問(wèn)題,在這里我就將一些經(jīng)常使用的游戲開(kāi)發(fā)方面的知識(shí)跟大家介紹 一下, 一是給大家提供一個(gè)設(shè)計(jì)思路,在此基礎(chǔ)上可以舉一反三,二是大家可以通過(guò)這個(gè)平臺(tái)共同學(xué)習(xí)。閑話(huà)不多說(shuō)了,切入正題,F(xiàn)SM有限狀態(tài)機(jī),在游戲開(kāi)發(fā)中如何使用?那些模塊的設(shè)計(jì)需要它?接下來(lái)我們就分析一下游戲:

         比如我們的玩家自身的狀態(tài)切換,Idle,walk,attack等等,這些都屬于狀態(tài)的切換,可以用有限狀態(tài)機(jī);還有比如玩家去完任務(wù):領(lǐng)取任務(wù),殺怪,交易,交接任務(wù);還有界面邏輯比如登錄,進(jìn)入場(chǎng)景,退出等等,在游戲中狀態(tài)切換還是很多的,以上我說(shuō)的都可以使用有限狀態(tài)機(jī)。既然這么多地方可以使用,那么我們?nèi)绾稳ピO(shè)計(jì)有限狀態(tài)機(jī)?

        下面我們先設(shè)計(jì)我們的FSM有限狀態(tài)機(jī)類(lèi)圖,如下所示:

         U3d架構(gòu)系列之-FSM有限狀態(tài)機(jī)設(shè)計(jì)一

    在這里我的優(yōu)先狀態(tài)機(jī),共五個(gè)類(lèi)文件組成。下面就給大家一一說(shuō)明:

    第一個(gè)是IState類(lèi),這個(gè)類(lèi)是抽象的,主要是實(shí)現(xiàn)有限狀態(tài)機(jī)的接口,書(shū)寫(xiě)如下:

    

using UnityEngine;
using System.Collections;

public interface IState {
	void OnEnter(string prevState);
	void OnExit(string nextState);
	void OnUpdate();
}

   這個(gè)抽象類(lèi)一共只有三個(gè)接口,一個(gè)是進(jìn)入狀態(tài),停止?fàn)顟B(tài),更新?tīng)顟B(tài)。

    第二個(gè)類(lèi)我會(huì)在系列二中給大家介紹。

   時(shí)間有點(diǎn)晚了,就先到這里吧。



向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI