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,使用内置的材质



    使用这个新的材质即可。

相关推荐
XR-AI-JK1 小时前
Unity VR/MR开发-VR设备与适用场景分析
unity·vr·mr
ChiLi_Lin1 小时前
Unity异常上报飞书工具
unity·游戏引擎·飞书
Magnum Lehar3 小时前
vulkan游戏引擎的makefile启动环境实现
游戏引擎
地狱为王12 小时前
基于VLC的Unity视频播放器(四)
unity·游戏引擎·音视频
13 小时前
Unity与Excel表格交互热更方案
unity·游戏引擎·excel
测试老哥16 小时前
Pytest+Selenium UI自动化测试实战实例
自动化测试·软件测试·python·selenium·测试工具·ui·pytest
步、步、为营18 小时前
.net jwt实现
ui·.net
藏在歌词里19 小时前
Axure-元件&流程图
ui·photoshop
孤蓬&听雨20 小时前
Axure形状类组件图标库(共8套)
ui·产品经理·axure·产品设计·原型设计
装大炮的自行车1 天前
【Unity】R3 CSharp 响应式编程 - 使用篇(集合)(三)
windows·unity·游戏引擎