我最近创建了简单的关卡生成器,它创建了一个带有细分的关卡。我使用mesh.bounds.x
来查看应该放置下一个段的前一个段的距离。它很适合我,因为所有细分都是方形的。现在我决定用更大的部分与另一边的比例(仍然是非常矩形)来完成这项工作。我的问题是,即使我尝试了很多组合,我也无法正确设置。
有人可以向我解释这mesh.bound
是如何运作的吗?我也实例化旋转的段,也许这会导致一些错误?我的所有预制件都是从搅拌机中导入的。
我的部分代码中我实例化了一个段(在我决定使用更复杂的段之前):
size = meshh.bounds.size;
if ((x == 0) && (y == 0))
{
segments[x, y] = Instantiate(prefabs[0], new Vector3(segments[1, 1].transform.position.x - size.x, segments[1, 1].transform.position.y, segments[1, 1].transform.position.z + size.x), segments[1, 1].transform.rotation) as GameObject;
segments[x, y].tag = "Terrain";
}
答案 0 :(得分:2)
答案 1 :(得分:2)
您的具体问题是边界框会在世界空间中生成正方形框...也就是说"轴对齐"。
AABB代表 AXIS ALIGNED 边界框。
不 "界限"你会想到"界限"在该词的传统英语含义中。
正如你所说,如果你有一个旋转的物体,它会给你最大的"平坦的"在世界空间中装有东西的盒子。
这是3D工程的基础。
图表显示了一些" AABB" "轴取向" 2D中的边界框。同样适用于3D。
(一旦你以高级方式处理这个问题,也要小心,因为网格界限令人困惑地AABB在Unity局部空间中绑定 即父母的空间 - 使用渲染器。渲染场景空间 - 不要担心这一点,直到你进入它:)有不同的"边界"你可以在Unity中使用,所有这些都令人困惑。)
顺便说一下 - 如果你刚刚开始,可以采用一种KISS方式来解决这个问题:简单地说,旋转物体直到它是正方形,即没有旋转。 然后进行测量!然后将其旋转到您需要的位置。