赞
踩
开发中我们需要获取模型的尺寸,以及设计用户通过面板来更改模型的尺寸,这就需要我们计算出每个标准的模型长宽高。
第一种:通过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;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。