unity 獲取物體尺寸

2021-06-22 03:15:40 字數 924 閱讀 7502



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

unity獲取物體尺寸

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

Unity中物體尺寸獲取

1 gameobject.getcomponent meshrenderer 或 skinnedmeshrenderer bounds.size.x或者是,這種方式獲得是這個物體實際的大小尺寸,不需要再乘以自己或者父級的縮放比例 2 gameobject.getcomponent collider ...

Unity獲取隱藏物體

unity場景中通常有許多隱藏物體,我們需要獲取它並且setactive true 例如,想要使bbb顯示出來。通過gameobject.find bbb 得到乙個空指標。解決方法有兩個 在指令碼中宣告共有變數gameobject,編輯器中直接拖拽賦值,然後setactive true 這種方法可行...