02 状态模式
using UnityEngine; /// <summary> /// 功能说明:状态模式 吃睡干例子 /// </summary> public class DPState:MonoBehaviour { private void Start() { Context context = new(); context.SetState(new Sleep(context)); context.Handle(); } } public interface IState { void Handle(); } public class Context//状态机 { private IState mState;//当前状态 public void SetState(IState state) //设置状态 { mState = state; } public void Handle() { mState.Handle(); //当前状态下需要执行的方法 } } public class EatMeals : IState { private Context mContext; public EatMeals(Context context) { mContext = context; } public void Handle() { Debug.Log("我们正在吃饭"); } } public class Work : IState { private Context mContext; public Work(Context context) { mContext = context; } public void Handle() { Debug.Log("我们正在工作"); } } public class Sleep : IState { private Context mContext; public Sleep(Context context) { mContext = context; } public void Handle() { Debug.Log("我们正在睡觉"); } }