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屬性爲正交模式下的口徑尺寸

相關文章
相關標籤/搜索