public CharacterStateSwitch3D(ICharacterState3D newState, Vector3 movementInput, float deltaTime, bool runImmediately) { this.newState = newState; this.movementInput = movementInput; this.deltaTime = deltaTime; this.runImmediately = runImmediately; }
private void SetInitialCharacterState() { if (characterController.isGrounded) { characterState = new GroundState3D(this, velocity); } else { characterState = new AirState3D(this, velocity); } }
public void ChangeCharacterState(CharacterStateSwitch3D stateSwitch) { PrintStateSwitch(stateSwitch); characterState.Exit(); characterState = stateSwitch.NewState; characterState.Enter(); if (stateSwitch.RunImmediately) { characterState.Update(stateSwitch.MovementInput, stateSwitch.DeltaTime); } }
public CharacterStateSwitch3D(ICharacterState3D newState) : this(newState, Vector3.zero, 0.0f, false) { }