void Update() { if (Time.time > nextFire) { nextFire = Time.time + fireRate; } if (gameController.GetPassengerOnBoard() > 0) { Quaternion currentQuat = rb.rotation; curPosDir = currentQuat * transform.InverseTransformDirection(transform.forward); for (int i = 0; i < gameController.GetPassengerOnBoard(); i++) { if (!passengerBalls [i].activeSelf) { passengerBalls [i].SetActive(true); } passengerBalls [i].transform.RotateAround(curPosDir, axises [i], (rotationSpeed + ((i + 1) * 20.0f)) * Time.deltaTime); var desiredPosition0 = (passengerBalls [i].transform.position - curPosDir).normalized * RADIUS + curPosDir; passengerBalls [i].transform.position = Vector3.MoveTowards(passengerBalls [i].transform.position, desiredPosition0, Time.deltaTime * RADIUS_SPEED); } } if (!gameController.getWaitingToStart()) { // Skybox Movement stars.rotXZ(); planets.rotXZ(); // SINGLETON ROTATION rotShip = Mathf.Atan2((PlayerInputSingleton.Instance.getXPerDeg() - .5f), (PlayerInputSingleton.Instance.getZPerDeg() - .5f)) * Mathf.Rad2Deg; // - 90.0f; float beamLast = rb.transform.rotation.eulerAngles.y; rb.transform.rotation = Quaternion.Lerp(rb.transform.rotation, Quaternion.AngleAxis(rotShip - 90f, Vector3.up), Time.deltaTime * 6f); // BEAM float perEngine = Mathf.Abs(PlayerInputSingleton.Instance.getXPerDeg() - .5f); if (Mathf.Abs(PlayerInputSingleton.Instance.getZPerDeg() - .5f) >= perEngine) { perEngine = Mathf.Abs(PlayerInputSingleton.Instance.getZPerDeg() - .5f); } beam.transform.localScale = new Vector3(1.0f, (1.0f - .1f) * perEngine * 2f + .1f, 1.0f); beamCode.setBend((beamLast - rb.transform.rotation.eulerAngles.y) * 2f); } }