public override void StartMovement() { apostleController.CheckForHorizontalInput(); CheckFacingDirection(); if (apostleController.Jog) { apostleStatusVariables.isJogging = !apostleStatusVariables.isJogging; } if (!MathHelpers.Approximately(apostleController.HorizontalMove, 0, float.Epsilon)) { if (apostleController.Run) { HorizontalMovementState = HorizontalMovementState.Running; } else if (apostleStatusVariables.isJogging) { HorizontalMovementState = HorizontalMovementState.Jogging; } else { HorizontalMovementState = HorizontalMovementState.Walking; } } else { HorizontalMovementState = HorizontalMovementState.Idle; } }
public virtual void StartCollisions(HorizontalMovementState horizontalMovementState, FacingDirection facingDirection) { UpdateColliderBounds(); CastDownwardRays(); CastLateralRays(); CheckGroundForSlopes(); CheckGroundForFall(horizontalMovementState); CheckBottom(facingDirection); }
public void CheckGroundForFall(HorizontalMovementState horizontalMovementState) { if (!CheckGroundForJump(DistanceForJump) && MathHelpers.Approximately(SurfaceAngle, 0, 5f) && (horizontalMovementState == HorizontalMovementState.Idle || horizontalMovementState == HorizontalMovementState.CrouchIdle) && MathHelpers.Approximately(rigidbody2D.velocity.magnitude, 0, 0.1f)) { if (CheckGroundWithPerifericalRays(DistanceForJump, true) && !CheckGroundWithPerifericalRays(DistanceForJump, false)) { PhysicsHelpers.AddImpulseForce(30f, false, rigidbody2D); } else if (CheckGroundWithPerifericalRays(DistanceForJump, false) && !CheckGroundWithPerifericalRays(DistanceForJump, true)) { PhysicsHelpers.AddImpulseForce(30f, true, rigidbody2D); } } }