creator3.0 做不了模型和UI混排

在场景的Canvas有个用于渲染的Camara,在Canvas里创建一个背景,然后再拖一个3d对象用Canvas的Camera做渲染,3d对象离Camera更近。
如下图

期待结果是3d对象站在背景图前面

运行结果


3d对象被背景挡住了,无论3d对象位置怎么摆,UI的优先渲染顺序永远高于3d对象。

解决办法就是用两个摄像头处理,一个用于渲染3d对象,一个用于渲染ui,并且3d对象的摄像头渲染顺序设置高一点。但是这样3d对象就不能和背景结合得很好。

u3d是可以用一个摄像头搞定ui和3d模型混排的。把摄像头设置为世界摄像头就可以按对象位置做为渲染顺序,或者普通摄像头,设置3d对象和ui的orderlayer也可以修改渲染顺序

为什么不能结合得很好?

如果我要移动对象,并且摄像头跟随3d角色,这时由于是两个摄像头是分开渲染的,如果只移动其中一个摄像头要么是人动背景不动,要么是背景动人不动。只能把两个摄像机的所有属性都设置完全一致,包括位置和方向都重合,一起移动才行。本来一个摄像头能搞定的事,分成两个摄像头搞。

你是说这种ui和3D模型的?

是的,这种UI和模型混排,但是角色能走动,背景跟着滚轴。希望能用单摄像机简单完成。

我就是一个相机,,,, 3d模型不是有uiModel这个组件么?把模型渲染成一个sprite的? 这样就能和ui很好的兼容了,,,

UIMeshRender用过了,可以做混排。UIMeshRender必须挂在有MeshRender组件的节点上才有效,而我的项目3d角色多,每个角色又是由多个MeshRender组成,如头,身体,武器或其它装备的都是独立的MeshRender,所以要在角色身上一个一个节点检测看哪个用到MeshRender组件,然后挂上对应的组件,非常麻烦,这还不行,还有把角色和原预制体断开关联才能挂UIMeshRender,这样就导致资源不好管理(改预制体就无法应用到场景角色了)。总之,这种做法体验不好。
如果能直接通过物体位置做为渲染顺序,做模型和UI混排应该方便多,其实可以给camera多加个属性的,设置是否UI优先渲染还是和3d物体排序渲染

是的 没有明白为什么UI里面不用ZIndex作为渲染顺序或者创建一个平面或者3d模型容器然后把模型渲染到其上,在做节点的层级排序

这是u3d的ui模型混排方式。把ui也当成3d世界对象,根据与摄像机的距离做渲染顺序,谁近谁优先,就像普通的3d对象之间的渲染顺序一样,使用非常方便。

creator3.0 用UIMeshRender 真的不方便