Пример #1
0
    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;
        }
    }
Пример #2
0
 public virtual void StartCollisions(HorizontalMovementState horizontalMovementState,
                                     FacingDirection facingDirection)
 {
     UpdateColliderBounds();
     CastDownwardRays();
     CastLateralRays();
     CheckGroundForSlopes();
     CheckGroundForFall(horizontalMovementState);
     CheckBottom(facingDirection);
 }
Пример #3
0
 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);
         }
     }
 }