搜索
您的当前位置:首页正文

设计模式之状态模式的解释

来源:易榕旅网

前言

我只是把我自己理解的写出来,因为在跟着视频写游戏的c#代码。
这个老外用了一个状态机设计模式,我就去理解一下。
具体的应用。
有三个主类。
角色类,状态类,状态管理类。剩下是继承状态类的子类

主要作用,可以让主类进行状态切换,调用子类状态的方法。可以通过状态管理类自动切换。
等之后理解更深入了再画图
放一下代码

角色类

public class Player {
        #region Components
        public Animator anim {get;private set;}
        public Rigidbody2D rb {get;private set;}
        #endregion

        #region States
        public PlayerStateMachine stateMachine {get;private set;}
        public PlayerIdleState idleState {get;private set;}
        public PlayerMoveState moveState {get;private set;}
        #endregion
        }

状态父类

public class PlayerState
{
    protected PlayerStateMachine stateMachine;
    protected Player player;
    private string animBoolName;
   }

状态管理类用于切换状态

public class PlayerStateMachine
{
    public PlayerState currentState {get;private set;}

    public void Initialize(PlayerState _currentState){
        this.currentState = _currentState;
        currentState.Enter();
    }
    

    public void ChangeState(PlayerState _newState){
        currentState.Exit();
        currentState = _newState;
        currentState.Enter();
    }



}

因篇幅问题不能全部显示,请点此查看更多更全内容

Top