Unity3D开发之获取物体的尺寸

开发中我们需要获取模型的尺寸,以及设计用户通过面板来更改模型的尺寸,这就需要我们计算出每个标准的模型长宽高。

第一种:通过Collider

我们给物体添加Collider。通过代码:Vector3 length = go.GetComponent().bounds.size;即可得到我们想要的结果。此方法是以collider为参考测量的,所以和模型的scale有关系。

 

第二种:通过组件MeshFilter

每个模型都有MeshFilter,里面的mesh存储着模型的顶点信息。先通过GetComponent().mesh.bounds.size获取模型的mesh三维大小。而实际在空间的大小和自身的scale以及父物体的scale决定的,所以这里我们要将刚刚得到的vector3类型的值中的xyz分量和模型的transform.lossyScale的xyz分量相乘就是最后物体实际的大小。

 

Vector3 length = go.GetComponent().mesh.bounds.size;
        float xlength = length.x * transform.lossyScale.x;
        float ylength = length.y * transform.lossyScale.y;
        float zlength = length.z * transform.lossyScale.z;

 

 

 

 

 

 

UI的大小获取和三维物体大小获取会有些不同:

 

float xl = GetComponent().rect.size.x;
        float yl = GetComponent().rect.size.y;

 

 

 

 

 

你可能感兴趣的:(Unity)