欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Unity3D开发之获取物体的尺寸

程序员文章站 2024-03-16 23:14:10
...

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

第一种:通过Collider

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

 

第二种:通过组件MeshFilter

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

 

Vector3 length = go.GetComponent<MeshFilter>().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<RectTransform>().rect.size.x;
        float yl = GetComponent<RectTransform>().rect.size.y;