问题描述
Unity已经很好地管理了碰撞并很好地触发了,但我想知道是否可以优化触发器以仅对图层做出反应?
当前,如果我在场景中有许多不同的对象与碰撞器,我需要这样做:
void OnTriggerEnter (Collider other) {
if (other.gameObject.layer == myLayer) {
// do stuff here
}
}
但这意味着,用对撞机女巫的 ALL 计算得出的碰撞似乎没有效率。
如果我想让触发器仅对玩家做出反应,是否有办法告诉它忽略所有其他层,以避免不必要的计算?
解决方法
是的,使用手册here中所述的碰撞矩阵。
,- 添加新的图层蒙版(或仅使用现有的蒙版)
- 取消选中所有可能与之碰撞的层,“ Player”层除外
- 将游戏对象的图层更改为新的修改后的图层
- 现在,该对象只能与玩家碰撞,并且只能由玩家触发(前提是其中一个具有刚体组件)