如何使Camera子对象显示在半透明Inventory Canvas前方?
解决方法
方案1:适配Screen Space-Overlay型Canvas(最便捷)
如果你的物品栏Canvas用的是Screen Space - Overlay模式:
- 打开选中物品的材质面板,找到Render Queue选项,将数值改为
4001(UI的Overlay队列默认是4000,更高的数值会在UI之后渲染,直接显示在UI上方)。 - 确认物品所在Layer已被Camera的Culling Mask勾选,不会被隐藏。
方案2:适配Screen Space-Camera型Canvas
如果Canvas是Screen Space - Camera模式:
- 修改Canvas的Plane Distance参数,把它设得离Camera更远(比如3)。
- 将选中物品实例移动到离Camera更近的位置(比如Z轴设为2,假设Camera正向为Z轴),让物品处于Canvas平面的前方,这样半透明Canvas就不会覆盖到物品。
方案3:双Canvas分层隔离
- 保留原半透明物品栏Canvas,新建一个空Canvas,设置为
Screen Space - Overlay模式,给它新建并设置一个优先级更高的Sorting Layer(比如创建ItemPreview层并拖到排序列表最顶部)。 - 将选中物品转为新Canvas的子对象:如果是3D物品,要么将其渲染为Texture贴在新Canvas的RawImage上,要么把新Canvas改为
World Space模式直接承载3D物品实例,这样预览物品会在独立顶层显示,完全不受下层半透明Canvas影响。
内容的提问来源于stack exchange,提问作者Joseph
相关产品推荐
相关产品推荐

