gpt4 book ai didi

c# - 从各种 BoxCollider2Ds 计算总面积高度和宽度

转载 作者:行者123 更新时间:2023-11-30 17:26:04 27 4
gpt4 key购买 nike

我在单个父游戏对象中的不同子游戏对象上有一个 BoxCollider2D。

enter image description here

我需要知道盒子碰撞体区域的总高度宽度。

Start() 期间,我遍历每个子组件,读取盒子碰撞器的大小并将其添加到名为 totalSizeVector2 属性中.

private Vector2 totalSize;

foreach (Transform child in transform)
{
var col = child.GetComponent<BoxCollider2D>();
if(col != null)
totalSize += new Vector2(col.bounds.size.x, col.bounds.size.y);
}

但是,对于图中的示例,这会计算出 220 x 100 的所有对象,而不是 100 x 50 的对象。其中每个灰色框代表一个 BoxCollider2D。

鉴于每个“盒子”的大小或配置可能不同,我如何找到真实的区域高度和宽度。

最佳答案

尝试这样的事情。它应该找到所有子项边界的总大小。

private Vector2 totalSize;

private float minX = Mathf.Infinity;
private float maxX = -Mathf.Infinity;
private float minY = Mathf.Infinity;
private float maxY = -Mathf.Infinity;

foreach (Transform child in transform)
{
var col = child.GetComponent<BoxCollider2D>();
if(col != null){
if(col.bounds.max.x > maxX) maxX = col.bounds.max.x;
if(col.bounds.min.x < minX) minX = col.bounds.min.x;

if(col.bounds.max.y > maxY) maxY = col.bounds.max.y;
if(col.bounds.min.y < minY) minY = col.bounds.min.y;
}
}
totalSize = new Vector2(maxX-minX, maxY-minY);

关于c# - 从各种 BoxCollider2Ds 计算总面积高度和宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57226055/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com