Пример #1
0
        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);
        }
Пример #2
0
 void OnDestroy()
 {
     NewtonianPool.Decommission(this);
 }
Пример #3
0
 void Awake()
 {
     currentVelocity = Vector3.zero;
     NewtonianPool.Register(this);
 }