public MotorStateBase(PlayerTopDown3DController player, PlayerFeedbacks feedback) { this.player = player; this.feedback = feedback; motorStatus = player.Status; raycaster = player.Raycaster; settings = CharacterSettings.instance; }
public MotorStateBase(Player2DMotor motor, Player2DFeedbacks feedback) { this.motor = motor; this.feedback = feedback; motorStatus = motor.status; raycaster = motor.raycaster; settings = GameSettings.instance; }
void Awake() { //Reference rb = GetComponent <Rigidbody2D>(); raycaster = GetComponent <MotorRaycaster>(); Feedbacks = GetComponentInChildren <Player2DFeedbacks>(); //Initialize various variables status = new MotorStatus(); stateClassLookup = new Dictionary <MotorStates, MotorStateBase> //Store all the FSM classes using their common base class { { MotorStates.OnGround, new MotorState_MoveOnGround(this, Feedbacks) }, { MotorStates.Aerial, new MotorState_Aerial(this, Feedbacks) }, { MotorStates.WallClimb, new MotorState_WallClimb(this, Feedbacks) }, { MotorStates.Hurt, new MotorState_Hurt(this, Feedbacks) }, }; currentStateType = MotorStates.OnGround; currentStateClass = stateClassLookup[currentStateType]; }