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;
上一篇: 移动端屏幕尺寸