示例#1
0
    public void ApplyForce(StarController star, float distance, Vector3 direction)
    {
        if (star.IsDying || IsDying)
        {
            return;
        }

        float   force       = star.Mass / (Mathf.Pow(distance, 2));
        Vector3 newPosition = this.transform.position + direction * force * GameManager.GRAVITY;

        if ((star.transform.position - newPosition).magnitude > (star.transform.position - this.transform.position).magnitude)
        {
            this.transform.position = star.transform.position;
        }
        else
        {
            this.transform.position = newPosition;
        }

        if (distance < radius / 4 && this.radius > star.radius)
        {
            star.Death(this);
            StartCoroutine(Eat(star));
            return;
        }
    }