这是个学习摘录:
在u3d中你可能会纠结于,一个有模型的游戏对象它到底是多大,如何才能得到它确切的大小值。
废话不多说下给出它的求解过程:
1、通过mesh.bounds.size 可以拿到模型对应三个轴向的大小
2、但是模型是可以缩放的,所以真实的模型高度应当是原始高度乘以缩放系数才行。通过 transform.lossyScale可以拿到模型对应三个轴向的缩放系数。
代码如下:
/// <summary>
/// 获取游戏对象的大小
/// </summary>
/// <returns>
/// The size.
/// </returns>
Vector3 GetObjectSize()
{
Vector3 realSize = Vector3.zero;
Mesh mesh = GetComponent<MeshFilter>().mesh;
if(mesh==null)
{
return realSize;
}
// 它模型网格的大小
Vector3 meshSize = mesh.bounds.size;
// 它的放缩
Vector3 scale = transform.lossyScale;
// 它在游戏中的实际大小
realSize = new Vector3(meshSize.x*scale.x, meshSize.y*scale.y, meshSize.z*scale.z);
return realSize;
}