Lovesa

卧槽 你妈是只鸡

U3D中获取模型的大小

在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;

}


评论
热度(7)

© Lovesa | Powered by LOFTER