Unity中WolrdSpace下的UI展示在上层

一、问题描述

Unity 中 Canvas使用World Space布局的UI,想让它不被3d物体遮挡,始终显示在上层。

二、解决方案

  1. 使用shader解决
    在 UI 的材质中禁用深度测试(ZTest),强制 UI 始终渲染在最上层。

    Shader "Custom/UI_NoDepthTest"
    {
    Properties { ... }
    SubShader
    {
    Tags {
    "Queue"="Transparent+1000" // 设置高优先级队列
    "RenderType"="Transparent"
    }
    ZWrite Off // 关闭深度写入
    ZTest Always // 始终通过深度测试
    ...
    }
    }

  2. TMP没有办法赋予新的material,使用内置的材质



    使用这个新的材质即可。

相关推荐
虾球xz1 小时前
游戏引擎学习第273天:动画预览
c++·学习·游戏引擎
浅陌sss3 小时前
Unity中AssetBundle使用整理(一)
unity·游戏引擎
虾球xz14 小时前
游戏引擎学习第269天:清理菜单绘制
c++·学习·游戏引擎
虾球xz16 小时前
游戏引擎学习第270天:生成可行走的点
c++·学习·游戏引擎
KhalilRuan16 小时前
Unity-Shader详解-其五
unity·游戏引擎
csdn_aspnet17 小时前
WPF 性能 UI 虚拟化 软件开发人员的思考
ui·wpf
課代表20 小时前
Excel VBA 词频统计宏
ui·excel··vba·模块·字典
惊鸿醉20 小时前
Unity C# 中的 反射 小记
unity·c#·游戏引擎
Yuze_Neko21 小时前
C#异步Task,await,async和Unity同步协程
开发语言·unity·c#
七月.末1 天前
【Unity】Unity中修改网格的大小和倾斜网格
unity·游戏引擎