保持 CircleCollider2D 与 sprite Unity 对齐

Keeping the CircleCollider2D aligned with the sprite Unity

我正在 Unity 中使用 2D Sprites 制作 2D 植物模拟。植物被表示为圆形精灵。我想要做的是增加精灵的半径并让 CircleCollider2D 跟随。由于它们具有不同的缩放比例,我使用的是半径的顺应增加而不是绝对增加。但问题是碰撞器半径比精灵增加得更快,即使碰撞器半径和精灵半径之间的关系保持不变。

这是增加尺寸的代码:

void Grow(GameObject plant)
{
    float currentRadius = plant.GetComponent<CircleCollider2D>().radius;            //Radius of the collider 
    float scaledRadius = Mathf.Max(plant.transform.localScale.x, transform.localScale.y);       //Radius of the sprite

    float radiusIncrease = growthSpeed * Time.deltaTime;

    float procIncrease = (currentRadius + radiusIncrease) / currentRadius;    //The procuental increase of the radius, need for sprite scaling
    plant.GetComponent<CircleCollider2D>().radius *= procIncrease;

    Vector3 oldLocalScale = plant.transform.localScale;
    Vector3 newLocalScale = new Vector3(oldLocalScale.x * procIncrease, oldLocalScale.y * procIncrease, oldLocalScale.z);
    plant.transform.localScale = newLocalScale;
}

我发现 CircleCollider2D 的半径随着 sprite 的增加而增加,这意味着我不必自己更改碰撞器的半径。