void FixedUpdate() { playerInput.GetKeyInput(); combinedVelocity = Vector3.zero; if (activePlayer == ActivePlayer.Cube && cubeDashLaunch.dashLaunchUnlocked && cubeDashLaunch.canDashLaunch) { combinedVelocity.y = cubeDashLaunch.DashLaunch(); } else if (activePlayer == ActivePlayer.Cube && cubeDash.dashUnlocked && cubeDash.isDashing) { combinedVelocity = (cubeDash.moveToSpot - rb.position) * cubeDash.speedMultiplier; } else if (activePlayer == ActivePlayer.Sphere && sphereBounce.slamBounceUnlocked && sphereBounce.canSlamBounce) { combinedVelocity.y = sphereBounce.SlamBounce(); } else if (activePlayer == ActivePlayer.Sphere && sphereSlam.slamUnlocked && !playerGroundDetection.isGrounded && (sphereSlam.isSlaming || sphereSlam.isSlamPaused)) { if (sphereSlam.isSlaming) { combinedVelocity = Vector3.down * sphereSlam.slamSpeed * 10; } else if (sphereSlam.isSlamPaused) { combinedVelocity = Vector3.zero; } } else { combinedVelocity.x = playerMove.Move(); combinedVelocity.y = playerJump.Jump(); if (!playerGroundDetection.isGrounded && rb.useGravity && combinedVelocity.y == 0) { combinedVelocity.y = playerJump.Fall(); } if (cubeWallJump.wallJumpUnlocked) { if (activePlayer == ActivePlayer.Cube && cubeWallJump.wallContact && !playerGroundDetection.isGrounded && cubeWallJump.wallJumpInput) { combinedVelocity = cubeWallJump.WallJump(); } else if (cubeWallJump.currWallJumpVelocity != Vector2.zero && cubeWallJump.dragH > 0 && cubeWallJump.dragV > 0) { combinedVelocity += cubeWallJump.WallJumpFall(); } } } //playerMove.Turn(); combinedVelocity.z = 0; rb.velocity = combinedVelocity; }