【发布时间】:2019-02-15 06:47:03
【问题描述】:
【问题讨论】:
标签: unity3d
【问题讨论】:
标签: unity3d
有两种可能的方法来做到这一点。如果您的对象有一个渲染器,您可以使用renderer.bounds.size,它将返回一个具有高度和宽度(以及深度,如果它是 3D 的话)的向量。
您还可以使用collider.bounds.size 从游戏对象上的碰撞器获取宽度和高度。试试这样的:
public Vector3 size;
private MeshRenderer renderer;
private void Start() {
renderer = GetComponent<MeshRenderer>();
size = renderer.bounds.size;
}
希望这会有所帮助!
【讨论】:
GameObject 没有宽度或高度,但它包含的信息可以。在您的情况下,您有一个 MeshRenderer 并且方便地有一个 bounds 属性,它将返回一个...
轴对齐的边界框将对象完全包围在世界空间中。
如果您有对该对象的MeshRenderer 的引用:
MeshRenderer renderer;
那么获取边界就这么简单:
renderer.bounds;
然后你可以观察它的size属性。
请记住,这是世界空间边界信息,因此所有旋转和缩放都会影响它。如果您想要网格本身的原始细节,您需要参考MeshFilter,查看其mesh 属性,并在that 上使用bounds 属性@ 987654334@对象。
【讨论】:
Mesh 对象本身的边界详细信息的信息,它不考虑转换细节。