最近老是遇到在Cocos Creator 3.x版本的节点显示问题。
- 我明明添加了节点,也挂载了精灵Sprite,但是为什么在web预览没办法显示呢?
- 我明明动态创建了预制体界面,也挂载到父节点上了,日志log打印出来了,为什么不显示呢?
同样的设置,我在Cocos Creator 2.4.x版本上,显示是正常的?这一切是why 为什么呢?
Reason:
Cocos Creator 3.x 版本,默认在层级管理器上,添加Node节点的层级 layer 是DEFAULT的。
默认的场景下,是只包含一个 Main Camera 主摄像机(因为不在Canvas下,这边默认是设置为了3D摄像机) 和 一个 Main Light 主光源。主摄像机 Main Camera的可见性掩码 visibility 默认勾选 可见 UI_3D & IGNORE_RAYCAST & DEFAULT。因为没有勾选UI_2D,所以如果设置层级为UI_2D的 节点,不会被该摄像机渲染(即不可见)。
如果添加的是UI节点或者渲染节点,则默认创建Canvas画布,并动态添加UI的摄像机,后添加UI节点挂载到Canvas下。此时UI节点的layer是UI_2D,动态添加的UI摄像机的 可见性掩码