如下,標準球體旁邊有個人物模型,目測人的寬度是0.5
,高度是1
,下面我們通過程式來獲取人物的真實size
。
這個值的結果真實反應出有meshrenderer
這個元件的模型的尺寸。不須要再乘以localscale
。
// transform為人物模型的meshrenderer的transform
var size = transform.
getcomponent
<
renderer
>()
.bounds.size;
debug.log (
"x: "
+ size.x +
",y: "
+ size.y)
;
輸出結果:
x: 0.5940213,y: 1.102448
此時我們把人物模型的scale
的x
改為2
輸出結果為:
x: 1.188043,y: 1.102448
通過meshfilter
獲得原始模型的mesh
,該值返回的結果是原始mesh
的尺寸。
// transform為人物模型的meshfilter的transform
var size = transform.
getcomponent
<
meshfilter
>()
.mesh.bounds.size;
debug.log (
"x: "
+ size.x +
",y: "
+ size.y)
;
此時不管人物怎麼縮放,輸出結果都是一樣
x: 0.5940213,y: 1.102448
為物體加入collider
,然後使用collider.bounds.size
。不過這個不能非常好的反應物體的大小,bounds
獲得的是物體的外包矩形,並且這個外包矩形的x,y,z
和世界座標一致。因此,若物體有旋轉,獲得的尺寸就不能反應出物體的真實大小,僅僅是其外包矩形的大小。如下,人物身上有乙個膠囊碰撞體
// transform為人物模型的meshfilter的transform
var size = transform.
getcomponent
<
collider
>()
.bounds.size;
debug.log (
"x: "
+ size.x +
",y: "
+ size.y)
;
輸出結果如下:
x: 0.2,y: 1
現在,我們把人物傾斜一下
輸出結果如下:
x: 0.6194265,y: 0.8812351
Unity中物體尺寸獲取
1 gameobject.getcomponent meshrenderer 或 skinnedmeshrenderer bounds.size.x或者是,這種方式獲得是這個物體實際的大小尺寸,不需要再乘以自己或者父級的縮放比例 2 gameobject.getcomponent collider ...
unity 獲取物體尺寸
以size的x方向為例 1 gameobject.renderer.bounds.size.x 這個值的結果真實反應出有meshrenderer這個元件的模型的尺寸。不需要再乘以localscale.x。2 gameobject.getcomponent mesh.bounds.size.x 通過m...
unity獲取物體尺寸
以size的x方向為例 1 gameobject.renderer.bounds.size.x 這個值的結果真實反應出有meshrenderer這個元件的模型的尺寸。不需要再乘以localscale.x。2 gameobject.getcomponent mesh.bounds.size.x 通過m...