栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > 其他

【CocosCreator3.x】图片不显示了?节点添加了没有显示?

其他 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【CocosCreator3.x】图片不显示了?节点添加了没有显示?

最近老是遇到在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摄像机的 可见性掩码 visibility 默认勾选 可见 UI_2D & UI_3D。

想必看到这里,也知道上面的原因了。

如果需要正常显示需要怎么做?

  • 需要在Canvas下挂载UI组件或者渲染组件的节点,而且需要设置节点的layer为UI_2D。因为Canvas下的摄像机的可见性掩码默认值开启了UI_2D 和 UI_3D,导致除了UI_2D 和 UI_3D以外的层级节点,被该2D摄像机渲染剔除了。如果需要自定义节点的layer 比如wall,想要在2D摄像机上渲染 层级为wall的节点,那么你需要在2D摄像机的 可见性掩码 visibility 勾选 wall。

动态加载的预制体,为什么看不见了?

  • 是因为动态加载的预制体或者动态创建的节点 new Node(),默认的layer是DEFAULT导致的。需要手动代码设置 node.layer = Layers.Enum.UI_2D,因为默认的2D摄像机的可见范围是 UI_2D 和 UI_3D,如果你修改了可见性掩码,那就需要做对应的修改了。

那Cocos Creator2.4.x为什么没有这个问题?

  • 因为默认创建的节点是default,相机camera默认是勾选了 default。因为Cocos Creator 3.x 整合了2D 和3D ,为了让用户更加容易区分2D和3D,且更加合理的管理节点层级(是为了做渲染剔除),所以做了不同的层级layer默认导致的。
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/902149.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号