//Using FixedUpdate() is better than Update() and Time.deltaTime because the math only has to be done 30 times per second. void FixedUpdate() { rSpeedQ = QuaternionD.Euler(rotationSpeed); foreach (Planet p in planets) { p.rotation *= rSpeedQ; } }
void Start() { planets.Add(GetComponent <Planet>()); foreach (Transform t in transform) { if (t.GetComponent <Planet>() != null) { planets.Add(t.GetComponent <Planet>()); } } rSpeedQ = QuaternionD.Euler(rotationSpeed); }
public static Orbit TiltOrbit(Orbit original, Quaternion rotation) { Orbit o = original; Quaternion r = rotation; QuaternionD orbitQuat = QuaternionD.Euler(o.inclination, 0, 0); QuaternionD rotD = new QuaternionD(r.x, r.y, r.z, r.w); QuaternionD mult = rotD * orbitQuat; Vector3d multEul = mult.eulerAngles; Orbit orbit = new Orbit( multEul.x, o.eccentricity, o.semiMajorAxis, o.LAN, o.argumentOfPeriapsis, o.meanAnomalyAtEpoch, o.epoch, o.referenceBody); return(orbit); }