using UnityEngine; public class BaseState { protected STAGE stage; protected BaseState nextState; protected Transform currentTarget; protected AICarDriver aiCarDriver; protected GameplayManager gameplayManager; public BaseState(AICarDriver aiCarDriver, GameplayManager gameplayManager) { stage = STAGE.Enter; this.aiCarDriver = aiCarDriver; this.gameplayManager = gameplayManager; } protected virtual void Enter() => stage = STAGE.Update; protected virtual void Update() => stage = STAGE.Update; protected virtual void Exit() => stage = STAGE.Exit; public BaseState ProcessStates() { if (stage == STAGE.Enter) Enter(); if (stage == STAGE.Update) Update(); if (stage == STAGE.Exit) { Exit(); return nextState; } return this; } }