// Use this for initialization void Start() { timeLeft = lifeTime; dontHitParentTimeLeft = dontHitParentTime; noEffectTimeLeft = noEffectTime; rigidbody = GetComponent <Rigidbody2D>(); gravity = new GravityEffected(transform, rigidbody); rigidbody.velocity = startingVelocity * transform.up; }
void ApplyGravity(GravityAffector affector, GravityEffected effected) { Rigidbody2D rb = effected.GetComponent <Rigidbody2D>(); float distSq = Mathf.Pow(Vector2.Distance(affector.transform.position, effected.transform.position), 2); Vector2 dir = affector.transform.position - effected.transform.position; dir = dir.normalized * (G * affector.GetMass() * effected.GetMass() / distSq); if (dir.magnitude > minimumForceThreshold) { rb.AddForce(dir); } }
public void AddToEffected(GravityEffected effectee) { effected.Add(effectee); }