Explain.
게임 제작시 MainFrame(MainManager, GameManager 등)에서 FSM을 구현하는 방법 정리
MainFrame.cs
게임 제작시 MainFrame(MainManager, GameManager 등)에서 FSM을 구현하는 방법 정리
MainFrame.cs
class MainFrame
{
public enum State
{
Game,
Lobby
}
FiniteStateMachine<MainFrame, State> FSM;
LobbyState stateLobby = new LobbyState();
GameState stateGame = new GameState();
void Awake()
{
FSM = new FiniteStateMachine<MainFrame, State>(this);
FSM.AddState(stateLobby);
FSM.AddState(stateGame);
FSM.ChangeState(stateLobby); // 시작시 stateLobby State
}
}
LobbyState.csclass LobbyState : FiniteState<MainFrame, MainFrame.State>
{
public override void SetEntity(MainFrame entity)
{
base.SetEntity(entity);
}
public override void Enter()
{
base.Enter();
//게임 입장시 이벤트 구현부
}
public override void Excute()
{
base.Excute();
//게임 실행시 이벤트 구현부
}
public override void Exit()
{
base.Exit();
//게임 퇴장시 이벤트 구현부
}
public override MainFrame.State _StateID
{
get
{
return MainFrame.State.Game;
}
}
}
GameState.csclass GameState : FiniteState<MainFrame, MainFrame.State>
{
public override void SetEntity(MainFrame entity)
{
base.SetEntity(entity);
}
public override void Enter()
{
base.Enter();
//게임 입장시 이벤트 구현부
}
public override void Excute()
{
base.Excute();
//게임 실행시 이벤트 구현부
}
public override void Exit()
{
base.Exit();
//게임 퇴장시 이벤트 구현부
}
public override MainFrame.State _StateID
{
get
{
return MainFrame.State.Game;
}
}
}
