示例#1
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);
        }
    }