void FixedUpdate() { int layerMask = 1 << 9; Collider[] cols = Physics.OverlapSphere(transform.position, 1f, layerMask); if (Scales.Pause == false) { Integrator.AdaptiveLeapfrog(ref pos2, ref vel2, Time.fixedDeltaTime, 2 * Time.fixedDeltaTime, cols, ref gravityLevel); transform.position = new Vector3(pos2.x, 0, pos2.y); } }
void Update() { line.enabled = isActive; foreach (GameObject go in spaceCraftHelper) { go.SetActive(isActive); } foreach (GameObject go in planetHelper) { go.SetActive(isActive); } if (line.enabled) { float t = 0; float deltaTime = Mathf.Floor(POPlanet.Par [1] / 90); Vector3 velocity = poEarth.ParametricVelocity(); velocity += Speed * (Quaternion.Euler(0, Direction, 0) * velocity).normalized; initialVel2.Set(velocity.x, velocity.z); initialPos2.Set(earth.transform.position.x, earth.transform.position.z); for (int i = 0; i < lineRendererLength; i++) { t += deltaTime; line.SetPosition(i, new Vector3(initialPos2.x, 0, initialPos2.y)); Integrator.AdaptiveLeapfrog(ref initialPos2, ref initialVel2, 1f, deltaTime); for (int j = 0; j < numOfHelpers; j++) { if (t == 6f * (j + 1) * deltaTime) { spaceCraftHelper [j].transform.position = new Vector3(initialPos2.x, 0, initialPos2.y); } } for (int j = 0; j < numOfHelpers; j++) { if (t == 6f * (j + 1) * deltaTime) { planetHelper [j].transform.position = poPlanet.GetPositionAfterTime(t); } } } } }