随着四季项目越做越大,里面的碰撞器也越来越复杂,有时候莫名的出现一些明明显示在最上层的物品,但是却点击不了现象。
为了处理以上问题,我必须得摸清Collider2D会受到什么样的影响
- SpriteRenderer 的 Order in Layer
- SpriteRenderer 的 Sorting Layer
- SortingGroup
- 不同的父对象
- Y轴 (我们游戏使用了Transparency Sort Axis 的Y进行视觉排序)
- Z轴
- 层级关系
测试结果如下:
项目 | 影响 |
---|---|
Order in Layer | 值大响应 |
Sorting Layer | 层深响应 |
SortingGroup | 无 |
父对象 | 无 |
Y | 无 |
Z | 越靠近摄像机越快响应 |
层级关系 | 无 |
最后比较重要的一步,当场景中没有SpriteRenderer时也需要测试,结论如下:
1 |
SpriteRenderer == null 时,此物品相关于Sorting Layer 为Default,Order In Layer为0。 |
在以上所有有影响的值都相同的情况下,判断到底响应哪一个,测试如下:
1 |
最后坐标移动者响应。(我在Scene拖动的) |
优先级 Sorting Layer > Odder In Layer > 坐标Z > 最后坐标变动者
以上,所以想要正确的响应碰撞事件,请务必使用SpriteRenderer进行管理(空的SpriteRenderer也行)。
最后,提前祝即将年满18岁的我节日快乐。