void Update() { if (playerStates.allowFreeMov) { if (playerStates.isWallClimbable && !playerStates.isWallClimbing) { playerCommons.updateWallInteractions(true, null, null); animTimer = 0.0f; } else if (playerStates.isWallRunnable && !playerStates.isWallRunning) { playerCommons.updateWallInteractions(null, true, null); animTimer = 0.0f; } } }
void ButtonInputs() { if (Input.GetButton("Jump")) // The instance the button is active : Returns true whenever its pressed/held or active { playerStates.isOffGrounding = true; } else if (playerStates.isJumping || playerStates.isLedgeHopping) // If you let go of jump button while jumping { playerStates.isJumping = false; playerStates.isLedgeHopping = false; } if (Input.GetButtonDown("Jump")) // The instance the button is pressed : Returns true only once when pressed { if (playerStates.allowFreeMov) // If in free movement, not on locked movement { if (playerStates.isWallHoppable && !playerStates.isJumping) // #1 - Wall hop if wall hoppable and not mid jump { WallHop(); } else if (playerStates.isGrounded) // #2 - Regular jump if grounded { playerStates.isJumping = true; } else // #3 - Air dash if mid air { AirDash(); } } else // If in locked movement (wallrun, wallclimb, etc.) { if (playerStates.isWallRunning || playerStates.isWallClimbing) { playerCommons.updateWallInteractions(false, false, null); WallHop(); } else if (playerStates.isLedgeHanging) { float playerAngle = fpvCam.transform.rotation.eulerAngles.y; float angleRange = 15.0f; float angleMax = miscHelper.normalizeDegrees(playerStates.wallAngleY + angleRange); float angleMin = miscHelper.normalizeDegrees(playerStates.wallAngleY - angleRange); bool facingAngle = miscHelper.AngleRangeCheck(angleMin, angleMax, playerAngle); if (facingAngle) // TODO++ : REWORK LEDGEHOP TO AUTOMATICALLY TRIGGER ONCE THE PLAYER HAS BEGUN LEDGE HANGING { playerStates.isLedgeHopping = true; } else { WallHop(); } rb.useGravity = true; playerCommons.updateWallInteractions(null, null, false); } playerCommons.modifyControls(true, true); playerCommons.modifyCamControl(false); } } }