我只是把我自己理解的写出来,因为在跟着视频写游戏的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();
}
}
因篇幅问题不能全部显示,请点此查看更多更全内容