一般的方法: 是建立乙個render texture 掛在指定相機和要顯示的ui上,會像下圖一樣有黑色背景 視覺效果很不好
解決辦法:(保留建立的render texture)
1.建立乙個shader:no-alpha
shader "default no-alpha"
_color("tint", color) = (1,1,1,1)
_stencilcomp("stencil comparison", float) = 8
_stencil("stencil id", float) = 0
_stencilop("stencil operation", float) = 0
_stencilwritemask("stencil write mask", float) = 255
_stencilreadmask("stencil read mask", float) = 255
_colormask("color mask", float) = 15
}subshader
stencil
cull off
lighting off
zwrite off
ztest[unity_guiztestmode]
fogblend one zero
colormask[_colormask]
blend one oneminussrcalpha // 源rgba*1 + 背景rgba*(1-源a值)
pass
;struct v2f
;fixed4 _color;
sampler2d _maintex;
fixed4 frag(v2f in) : sv_target
endcg}}
}
2.建立乙個材質球:mat
材質球shader選擇上方no-alpha
3.將材質球mat拖到要顯示的ui(raw image)上
4.設定指定相機的clear flags
效果如下:
模型在UI上顯示
接到的任務需求是在將3d模型的內容在ui上顯示 梳理了目前有3個種方式,當然沒有好壞之分,只有合適與否。在開源專案中sometips的scenes資料夾中,加入3duiwayno1 3的場景,看到以上的實現方式。camer是skybox直接與ui混合。如果在放在ui節點下,因為在同一層級下,通過控制...
Unity 關於特效和UI顯示的優先順序問題
渲染優先順序有不同層次的控制 1.不同攝像機之間,通過depth 來控制渲染順序,這個優先順序最高。2.相同depth情況下,通過修改sotinglayer來確定渲染順序 3.相同sotinglayer下,通過sortingorder 特效中叫做 order in layer 來控制。camera....
粒子顯示在UI前方
canvas的render mode的三種模式比較 canvas元件中的render mode 1.screen space overlay 此模式不需要ui攝像機,ui將永遠出現在所有攝像機的最前面 ui置頂 2.screen space camera 它需要提供乙個uicamera 這樣就和ng...