示例#1
0
    // 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;
    }
示例#2
0
    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);
        }
    }
示例#3
0
 public void AddToEffected(GravityEffected effectee)
 {
     effected.Add(effectee);
 }