unity3d中得到物体的size

以size的x方向为例ide

1:gameObject.renderer.bounds.size.x;//这个值的结果然实反应出有MeshRenderer这个组件的模型的尺寸。不须要再乘以localScale.x。orm

 

2:gameObject.GetComponent<MeshFilter>().mesh.bounds.size.x;//经过MeshFilter得到原始模型的mesh,该值返回的结果是原始mesh的尺寸。form

若要得到模型的尺寸大小还须要乘以模型的localScale.x。transform

即:gameObject.GetComponent<MeshFilter>().mesh.bounds.size.x*gameObject.transform.localScale.x;co

 

3:为物体添加Collider,而后使用XXX.collider.bounds.size;game

这个不必定能很好的反应物体的大小,bounds得到的是物体的外包矩形。并且这个外包矩形的X,Y,Z和世界坐标一致。所以,若物体有旋转,得到的尺寸就不能反应出物体的真实大小,只是其外包矩形的大小。。。模型

 

如:得到terrain的尺寸render

        terrainWidth = terrain.collider.bounds.size.x;

        terrainLength = terrain.collider.bounds.size.z;

        terrainHeight = terrain.collider.bounds.size.y;

4:代码实现得到复杂物体的尺寸(诸如根节点没有MeshFilter,MeshRenderer组件,物体是由不少复杂不规则的小mesh子物体组成的)
如:

 

 

 

 

Camera的口径Size

当投影类型为Perspective时,fieldOfView属性表示口径的度数,范围为[1,179]

当投影类型为Orthgraphic,     orthographicSize属性为正交模式下的口径尺寸

相关文章
相关标签/搜索