U3d架構系列之-FSM有限狀態機設計一

   

        我們在遊戲開發中經常面臨架構設計問題,在蠻牛問答裏面也有好多朋友問關於架構方面的問題,在這裏我就將一些經常使用的遊戲開發方面的知識跟大家介紹 一下, 一是給大家提供一個設計思路,在此基礎上可以舉一反三,二是大家可以通過這個平臺共同學習。閒話不多說了,切入正題,FSM有限狀態機,在遊戲開發中如何使用?那些模塊的設計需要它?接下來我們就分析一下游戲:

         比如我們的玩家自身的狀態切換,Idle,walk,attack等等,這些都屬於狀態的切換,可以用有限狀態機;還有比如玩家去完任務:領取任務,殺怪,交易,交接任務;還有界面邏輯比如登錄,進入場景,退出等等,在遊戲中狀態切換還是很多的,以上我說的都可以使用有限狀態機。既然這麼多地方可以使用,那麼我們如何去設計有限狀態機?

        下面我們先設計我們的FSM有限狀態機類圖,如下所示:

         wKiom1THrgnDFZcsAAOShIcUaH0197.jpg

    在這裏我的優先狀態機,共五個類文件組成。下面就給大家一一說明:

    第一個是IState類,這個類是抽象的,主要是實現有限狀態機的接口,書寫如下:

    

using UnityEngine;
using System.Collections;

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

   這個抽象類一共只有三個接口,一個是進入狀態,停止狀態,更新狀態。

    第二個類我會在系列二中給大家介紹。

   時間有點晚了,就先到這裏吧。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章