我正在尝试使用精灵的边界框大小的对撞机。
我拥有的是具有三个精灵的GameObject
。我想只使用一个碰撞器来覆盖整个GameObject,所以我尝试使用中间精灵的Bounds
并使用Bounds class中的Encapsulate
方法来增加边界的大小然后把这个尺寸给对手。
如果我只传入精灵2 边界,则对撞机的尺寸合适。但如果我Encapsulate
第一个和第三个精灵,对撞机的大小就会变成奇数。
代码:
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;