/*** * writer: YKMoon * desc: 流程管理器基类 ***/ using System; using System.Collections; using System.Collections.Generic; namespace YKMoon.Procedure { public interface IProc { void Enter(); void Update(float deltaTime); void Exit(); } public abstract class ABaseProc: IProc { protected Action finishCB; public void Init(Action finishCB) { this.finishCB = finishCB; } public abstract void Enter(); public virtual void Update(float deltaTime) { } public abstract void Exit(); protected void Finish() { finishCB?.Invoke(); } } public abstract class ABaseProc: ABaseProc { protected T param; public void Init(Action finishCB, T param) { base.Init(finishCB); this.param = param; } } public abstract class ABaseProc : ABaseProc { protected T param1; protected K param2; public void Init(Action finishCB, T param1, K param2) { base.Init(finishCB); this.param1 = param1; this.param2 = param2; } } }