一、問題描述
Unity 中 Canvas使用World Space布局的UI,想讓它不被3d物體遮擋,始終顯示在上層。
二、解決方案
- 使用shader解決
在 UI 的材質中禁用深度測試(ZTest),強制 UI 始終渲染在最上層。
Shader "Custom/UI_NoDepthTest"
{Properties { ... }SubShader{Tags { "Queue"="Transparent+1000" // 設置高優先級隊列"RenderType"="Transparent" }ZWrite Off // 關閉深度寫入ZTest Always // 始終通過深度測試...}
}
- TMP沒有辦法賦予新的material,使用內置的材質
使用這個新的材質即可。