关于Node.group和Camera.cullingMask的问题

  • 项目配置好了两个组:default(0),ui(1)。
  • Canvas节点在default组,其下有两个Camera:Main Camera设置好cullingMask仅渲染default组,UI Camera仅渲染ui组。
  • Canvas下各节点所在组如下:
  • Canvas/A:ui
  • Canvas/A/a:default
  • Canvas/B:default
  • Canvas/B/b:ui
  • 渲染结果:
  • Main Camera渲染了Canvas/B及其子层级
  • UI Camera渲染了Canvas/A及其子层级
  • 疑惑:
  • Canvas/B/b明明在ui组,确被Main Camera渲染了
  • Canvas/A/a明明在default组,却被UI Camera渲染了
  • 结论:
  • 若某节点为Canvas的直接孩子,则该节点的组设置会决定其所有子层级的渲染相机。

以上结论对否,请官方给个评判。

版本:2.0.1

补充

进一步实验,及查阅源码得出以下结论:

  • 渲染时,处于default组的节点会采纳距它最近的非default组祖先的cullingMask,即这个祖先会和那个节点用同一相机渲染。
  • 这样的设计确实大有好处,即当你有大量节点需要分配到非default组渲染,只要将他们放在配置了那个组的父节点下即可,不用一个一个设置组了。
  • 但这个结论可能仅适用于渲染,碰撞大概就不适合了。
1赞