public void Remove(GravitationalBody v) { if (bodies.Contains(v)) { bodies.Remove(v); } }
void Start() { OrbitRenderer = GameObject.Find("OrbitRenderer").GetComponent <LineRenderer>(); player = GameObject.Find("Player").GetComponent <GravitationalBody>(); OrbitRenderer.enabled = false; }
public void Add(GravitationalBody v) { if (!bodies.Contains(v)) { bodies.Add(v); } }
// Start is called before the first frame update void Start() { scr = player.GetComponent <GravitationalBody>(); planetName.text = "Type: planet"; Mass.text = "Mass: -1"; Vector.text = "Vector2: <0,0,0>"; Coords.text = "Coordinates: <0,0,0>"; }
public virtual Vector2 GravitationalPull(GravitationalBody other) { if (other.CenterOfMass == this.CenterOfMass) { Debug.LogError("[GravitationalBody] Attempting to calculate field strength with zero radius (divide by zero)"); return(Vector2.zero); // cannot have same center of mass, return zero force instead of infinite } return(FieldStrengthAtPoint(other.CenterOfMass) * other.Mass); }
public void TestGravityBetweenBodies() { GravitationalBody earth = CommonAstroObjects.Earth; GravitationalBody human = TestObjects.Human; human.Position = new Vector(AstrophysicalConstants.Earth_Radius + 1.5, 0, 0); Vector result = earth.GravitationalForceToward(human); Vector expected = new Vector(human.Mass * 9.81, 0, 0); Assert.IsTrue(Helpers.WithinTolerance(result, expected)); }
public void TestGravityAtSurface() { GravitationalBody earth = new GravitationalBody( radius: AstrophysicalConstants.Earth_Radius, mass: AstrophysicalConstants.Earth_Mass) { Position = new Vector() }; double result = earth.GravityAtSurface; double expected = 9.81; Assert.IsTrue(Helpers.WithinTolerance(result, expected)); }
public void SystemFocus(GravitationalBody systemCenter, SciNumber distanceScale = null) { if (currentFocus == systemCenter) { return; } currentFocus?.SetViewLevel(ViewLevel.None); currentFocus?.OrbitedBy.ForEach(x => x.SetViewLevel(ViewLevel.None)); if (distanceScale != null) { SetUnitScale(SIUnitType.Meter, distanceScale); } systemCenter.SetViewLevel(ViewLevel.SystemCenter); systemCenter.OrbitedBy.ForEach(x => x.SetViewLevel(ViewLevel.Orbiting)); currentFocus = systemCenter; }
public static Vector3 WorldPosition(MechanicalElements me, GravitationalBody orbiting) { return((orbiting.mechanicalElements.position + me.position).Scaled.Vector); }
protected virtual void Awake() { body = GetComponentInParent <GravitationalBody>(); body.uiElements.Add(this); }
public void DeregisterBody(GravitationalBody body) { activeBodies.Remove(body); }
public void RegisterBody(GravitationalBody body) { activeBodies.Add(body); }
private void Awake() { gravitationalBody = GetComponentInParent <GravitationalBody>(); }
void Start() { player = GameObject.Find("Player"); playersgravity = player.GetComponent <GravitationalBody>(); }
public bool HasBody(GravitationalBody v) { return(bodies.Contains(v)); }
private void Start() { player = GameObject.Find("Player").GetComponent <GravitationalBody>(); }