// Update is called once per frame void Update() { // Only allow these controls on the ship to be used if the race has started and the racer hasn't finished racing if (gm.raceStarted && !finished) { // This code is held in update instead of fixed update so that there is 0 delay on the action taking place. // Button to shift to other side of track. if (Input.GetButtonDown(playerInput + "Y_Button") && grounded && gravityShiftReady && !respawning) { if (shipGravityCharges >= 1) { camera.CameraWhiteFlash(); StartCoroutine("GravityShift"); } else { shipCollider.isTrigger = true; shipCollider.isTrigger = false; } } // Button to respawn (self-destruct) ship if (Input.GetButtonDown(playerInput + "Back_Button") && !invincible && !finished) { RespawnShip(); } // Button to fire current weapon if (Input.GetButtonDown(playerInput + "A_Button") && grounded && !respawning) { if (currentWeapon != "NO WEAPON") { pm.FireWeapon(gameObject, currentWeapon, weaponLevel); } } // Apply proper catch up speed based on position and number of players present if (currentPosition == 4) { catchupSpeed = 1.15f; } else if (currentPosition == 3) { catchupSpeed = 1.10f; } else if (currentPosition == 2) { catchupSpeed = 1.05f; } else if (currentPosition == 1) { catchupSpeed = 1f; } } }