Cocos Creator3.0 在3D游戏场景下添加2D精灵(利用RenderRoot2D),2D精灵的会默认渲染在3D元素上面,类似于UI的渲染层级。

https://docs.cocos.com/creator/3.0/manual/zh/ui-system/components/engine/priority.html
按照此官方手册设置渲染也未达到,单纯按照深度信息进行渲染的效果,请问各位是如何解决的。
场景中:
image
运行时:
image

1赞

你是不是两个摄像机啊?

是的,两个。一个UI,一个游戏场景。

你看看这俩是一个相机渲染的不

不是同一个相机

目前Cocos还不支持3D场景里的2D UI吧。不像u3d一样

俩方案
1箭头也用方块的相机
2让箭头的摄像机优先级更高
我感觉你应该是用方案1合适

支持的123

你确定支持的吗?是从哪个版本开始支持的呢?我记得我以前问过这个问题。当时是不支持的呀

我需要的是2D元素被方块遮挡,因为当前状态下方块是在箭头前面的(离摄像机更近)。放在同一个摄像机下,2D元素总是渲染在最前面。让箭头摄像机的优先级更高只会让它渲染在更前面。

你应该是哪里搞错了,2d元素用的材质把深度检测打开,谁在前后是受z影响的,不会说2d元素总在最前面
编辑器:
image
运行时:
image

1赞

你看这个官方demo,3.0版本就可以

是的,刚在官方示例中看到2D元素添加了深度的材质,感谢你的回答,问题解决了。

我请教个问题哈。我直接在test的场景里新建了一个精灵,。然后材质也开启了depth-test。然后运行起来如图


可以看到这个精灵的旋转和Z方向前后移动后,渲染的效果是图像一直在Z为0的位置。可以可到矩阵和图像是不一致的。我仔细 对比了我这个精灵的材质和实例里的那个龙骨节点的材质,所有选项都是一模一样的,但是龙骨那个节点的旋转和位移就正常。我的就不正常。是哪个地方没设置对嘛?

把Sprite的Type设置为其他几个。我设置的是填充,填充总量1。

谢谢。精灵得设置成SLICED才行。真是日了狗了。
不过如果需要显示一个Label在3D场景。看起来就没有办法了。

我觉得设置FILLED好些,只是填充,不会影响你原来的设计需求,FillRange设置为1就可以了。

我已经反馈过这个问题了,小秘书确认过是有问题的

label可以把cacheMode选为char或者是用位图字体,其它情况都不太行。。。

该主题在最后一个回复创建后14天后自动关闭。不再允许新的回复。