天天看點

[Unity 3D] Unity 3D 性能優化(三)CenterOfMass

在處理實體碰撞時,尤其是OnTrigger族消息,由于要手動計算碰撞點會經常要用到碰撞體的質心。擷取質心常用的有三種方式:

1、Collider.bounds.center

2、Collider.rigidbody.worldCenterOfMass

3、Collider.attachedRigidbody.worldCenterOfMass

第一種方式其實是認為碰撞體是均勻幾何體,是以取碰撞盒中心作為質心。注意,這裡的Collider并不是collider屬性,而是表示一個Collider引用,是以不必考慮collider屬性通路引起的性能開銷(其實在處理碰撞時,Collider引用是能夠直接得到的,也不需要做collider屬性通路)。

設計實驗——針對同一個碰撞體,分别調用以上三種方式各8×1024×1024次

實驗結果——第一種約4500ms,第二種約2500ms,第三種約2000ms。

在碰撞不涉及剛體的情況下,要擷取質心隻能使用性能最差的第一種方式。而有剛體的情況下,自然推薦使用第三種方式。

本文轉蓬萊仙羽51CTO部落格,原文連結:http://blog.51cto.com/dingxiaowei/1366355,如需轉載請自行聯系原作者

繼續閱讀