public void Update(Vector3 movementInput, float deltaTime) { UpdateVelocity(direction, deltaTime); timer += deltaTime; if (timer >= duration) { var stateSwitch = new CharacterStateSwitch3D(new GroundState3D(controller, velocity), movementInput, deltaTime, true); controller.ChangeCharacterState(stateSwitch); } }
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 HandleCollisions(CollisionFlags collisionFlags) { CharacterStateSwitch3D stateSwitch; if ((collisionFlags & CollisionFlags.Below) == CollisionFlags.Below) { stateSwitch = new CharacterStateSwitch3D(new GroundState3D(controller, velocity)); } else { stateSwitch = new CharacterStateSwitch3D(); } return(stateSwitch); }
public void Update(Vector3 movementInput, float deltaTime) { if (PlayerInputs.instance.DodgeButton && CanDodge()) { var stateSwitch = new CharacterStateSwitch3D(new DodgeState3D(controller, velocity), movementInput, deltaTime, true); controller.ChangeCharacterState(stateSwitch); } else if (PlayerInputs.instance.JumpButton) { var stateSwitch = new CharacterStateSwitch3D(new AirState3D(controller, velocity), movementInput, deltaTime, true); controller.ChangeCharacterState(stateSwitch); } else { UpdateVelocity(movementInput, deltaTime); } }
public void Update(Vector3 movementInput, float deltaTime) { if (Input.GetKeyDown(KeyCode.Space) && CanDodge()) { var stateSwitch = new CharacterStateSwitch3D(new DodgeState3D(controller, velocity), movementInput, deltaTime, true); controller.ChangeCharacterState(stateSwitch); } /*else if (Input.GetKeyDown(KeyCode.Space)) * { * * var stateSwitch = new CharacterStateSwitch3D(new AirState3D(controller, velocity), movementInput, deltaTime, true); * controller.ChangeCharacterState(stateSwitch); * }*/ else { UpdateVelocity(movementInput, deltaTime); } }
private void PrintStateSwitch(CharacterStateSwitch3D stateSwitch) { print("Switching character state from " + characterState.ToString() + " to " + stateSwitch.NewState.ToString()); }