我們在遊戲開發中經常面臨架構設計問題,在蠻牛問答裏面也有好多朋友問關於架構方面的問題,在這裏我就將一些經常使用的遊戲開發方面的知識跟大家介紹 一下, 一是給大家提供一個設計思路,在此基礎上可以舉一反三,二是大家可以通過這個平臺共同學習。閒話不多說了,切入正題,FSM有限狀態機,在遊戲開發中如何使用?那些模塊的設計需要它?接下來我們就分析一下游戲:
比如我們的玩家自身的狀態切換,Idle,walk,attack等等,這些都屬於狀態的切換,可以用有限狀態機;還有比如玩家去完任務:領取任務,殺怪,交易,交接任務;還有界面邏輯比如登錄,進入場景,退出等等,在遊戲中狀態切換還是很多的,以上我說的都可以使用有限狀態機。既然這麼多地方可以使用,那麼我們如何去設計有限狀態機?
下面我們先設計我們的FSM有限狀態機類圖,如下所示:
在這裏我的優先狀態機,共五個類文件組成。下面就給大家一一說明:
第一個是IState類,這個類是抽象的,主要是實現有限狀態機的接口,書寫如下:
using UnityEngine; using System.Collections; public interface IState { void OnEnter(string prevState); void OnExit(string nextState); void OnUpdate(); }
這個抽象類一共只有三個接口,一個是進入狀態,停止狀態,更新狀態。
第二個類我會在系列二中給大家介紹。
時間有點晚了,就先到這裏吧。