Example #1
0
    public void PlayerJump()
    {
        if (isWallSliding)
        {
            if (canPlayerWallJump)
            {
                Vector2 newWallClimbVec = ReturnWallJumpVelocity(playerInputDirection, wallDirectionX);

                playerVelocity = newWallClimbVec;

                playerAnimation.SetTrigger("isJump");
            }
        }
        else if (playerCollision.collisionData.isCollidingBelow)
        {
            if (canPlayerJump)
            {
                if (playerCollision.collisionData.isSlidingDownSlope)
                {
                    if (playerInputDirection.x != -Mathf.Sign(playerCollision.collisionData.slopeNormal.x))
                    {
                        playerVelocity.y = playerMaxJumpVelocity.y * playerCollision.collisionData.slopeNormal.y;
                        playerVelocity.x = playerMaxJumpVelocity.y * playerCollision.collisionData.slopeNormal.x;

                        playerAnimation.SetTrigger("isJump");
                    }
                }
                else
                {
                    CalculateJumpVelocity();

                    playerVelocity.y = playerMaxJumpVelocity.y;

                    playerAnimation.SetTrigger("isJump");
                }
            }
        }
    }
    public void PlayerJump()
    {
        if (isWallSliding)
        {
            if (wallDirectionX == playerInputDirection.x)
            {
                Vector2 wallClimb = Vector2.zero;

                wallClimb.x = -wallDirectionX * playerWallClimbAttributes.wallJumpClimb.x;
                wallClimb.y = playerWallClimbAttributes.wallJumpClimb.y;

                playerVelocity.x = -wallDirectionX * playerWallClimbAttributes.wallJumpClimb.x;
                playerVelocity.y = playerWallClimbAttributes.wallJumpClimb.y;

                playerAnimation.SetTrigger("isWallJump");
            }
            else if (playerInputDirection.x == 0)
            {
                Vector2 wallClimb = Vector2.zero;

                wallClimb.x = -wallDirectionX * playerWallClimbAttributes.wallJumpOff.x;
                wallClimb.y = playerWallClimbAttributes.wallJumpOff.y;

                playerVelocity.x = -wallDirectionX * playerWallClimbAttributes.wallJumpOff.x;
                playerVelocity.y = playerWallClimbAttributes.wallJumpOff.y;

                playerAnimation.SetTrigger("isWallJump");
            }
            else
            {
                Vector2 wallClimb = Vector2.zero;

                wallClimb.x = -wallDirectionX * playerWallClimbAttributes.wallJumpLeap.x;
                wallClimb.y = playerWallClimbAttributes.wallJumpLeap.y;

                playerVelocity.x = -wallDirectionX * playerWallClimbAttributes.wallJumpLeap.x;
                playerVelocity.y = playerWallClimbAttributes.wallJumpLeap.y;

                playerAnimation.SetTrigger("isWallJump");
            }
        }
        else if (playerCollision.collisionData.isCollidingBelow)
        {
            if (playerCollision.collisionData.isSlidingDownSlope)
            {
                if (playerInputDirection.x != -Mathf.Sign(playerCollision.collisionData.slopeNormal.x))
                {
                    playerVelocity.y = playerMaxJumpVelocity.y * playerCollision.collisionData.slopeNormal.y;
                    playerVelocity.x = playerMaxJumpVelocity.y * playerCollision.collisionData.slopeNormal.x;

                    playerAnimation.SetTrigger("isJump");
                }
            }
            else
            {
                CalculateJumpVelocity();

                playerVelocity.y = playerMaxJumpVelocity.y;

                playerAnimation.SetTrigger("isJump");

                playerAudio.RequestAudioEvent("jumpSFX");
            }
        }
    }