在處理實體碰撞時,尤其是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,如需轉載請自行聯系原作者