private void FlipIfRequired(State2DRobotInput.RobotInput input) { if (input.move > 0 && !_facingRight) { Flip(); } else if (input.move < 0 && _facingRight) { Flip(); } }
public override RobotState HandleInput(State2DRobotInput.RobotInput input) { if (!input.crouch) { return new WalkState(_robot); } input.move = (input.move * CROUCH_SPEED); base.HandleInput(input); return this; }
public override RobotState HandleInput(State2DRobotInput.RobotInput input) { _robotAnimator.SetBool("Crouch", input.crouch); _robotAnimator.SetFloat("Speed", Mathf.Abs(input.move)); _robot.GetComponent<Rigidbody2D>().velocity = new Vector2(input.move * MAX_SPEED, _robot.GetComponent<Rigidbody2D>().velocity.y); FlipIfRequired(input); if (input.crouch) { return new CrouchState(_robot); } return this; }
public void UpdateState(State2DRobotInput.RobotInput input) { var newState = _robotState.HandleInput(input); _robotState = newState; }
public abstract RobotState HandleInput(State2DRobotInput.RobotInput input);