结合精灵界限

时间:2014-03-31 11:57:54

标签: c# unity3d sprite bounding-box

我正在尝试使用精灵的边界框大小的对撞机。

我拥有的是具有三个精灵的GameObject。我想只使用一个碰撞器来覆盖整个GameObject,所以我尝试使用中间精灵的Bounds并使用Bounds class中的Encapsulate方法来增加边界的大小然后把这个尺寸给对手。

如果我只传入精灵2 边界,则对撞机的尺寸合适。但如果我Encapsulate 第一个和第三个精灵,对撞机的大小就会变成奇数。

enter image description here

代码:

Bounds spriteTwoBounds = parentGO.GetBounds(spriteTwo);

foreach (Transform t in parentGO.GetComponentsInChildren<Transform>())
{
    if (t.HasSpriteRenderer())
    {
        spriteTwoBounds.Encapsulate(t.GetComponent<SpriteRenderer>().bounds);
    }
}
parentGO.GetComponent<BoxCollider2D>().size = spriteTwoBounds.size;

0 个答案:

没有答案