unity3d中獲得物體的size

2021-08-10 18:48:41 字數 914 閱讀 7301

以size的x方向為例

1:gameobject.renderer.bounds.size.x;//這個值的結果真實反應出有meshrenderer這個元件的模型的尺寸。不需要再乘以localscale.x。

2:gameobject.getcomponent().mesh.bounds.size.x;//通過meshfilter獲得原始模型的mesh,該值返回的結果是原始mesh的尺寸。

若要獲得模型的尺寸大小還需要乘以模型的localscale.x。

即:gameobject.getcomponent().mesh.bounds.size.x*gameobject.transform.localscale.x;

3:為物體新增collider,然後使用***.collider.bounds.size;

這個不一定能很好的反應物體的大小,bounds獲得的是物體的外包矩形。而且這個外包矩形的x,y,z和世界座標一致。因此,若物體有旋轉,獲得的尺寸就不能反應出物體的真實大小,只是其外包矩形的大小。。。

如:獲得terrain的尺寸

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

unity3d中獲得物體的size

以size的x方向為例 1 gameobject.renderer.bounds.size.x 這個值的結果真實反應出有meshrenderer這個元件的模型的尺寸。不需要再乘以localscale.x。2 gameobject.getcomponent mesh.bounds.size.x 通過m...

unity3d中獲得物體的size

以size的x方向為例 1 gameobject.renderer.bounds.size.x 這個值的結果真實反應出有meshrenderer這個元件的模型的尺寸。不須要再乘以localscale.x。2 gameobject.getcomponent mesh.bounds.size.x 通過m...

Unity3D中物體的移動方式

在unity3d中,有多種方式可以改變物體的座標,實現移動的目的.總結來說,分為以下幾種,這裡對於這幾種方式分別做闡述.通過transform元件移動物體 transform 元件用於描述物體在空間中的狀態,它包括 位置 position 旋轉 rotation 縮放 scale 其實所有的移動都會...