public Vector3 GravitationalForce() { var accelerationVector = Vector3.zero; foreach (var body in NewtonianPool.Bodies()) { var dir = body.transform.position - this.transform.position; if (dir == Vector3.zero) { continue; } accelerationVector += ((gravitationalConstant * this.mass * body.mass) / Mathf.Abs(dir.sqrMagnitude)) * dir.normalized; } return(accelerationVector); }
void OnDestroy() { NewtonianPool.Decommission(this); }
void Awake() { currentVelocity = Vector3.zero; NewtonianPool.Register(this); }