Unity 在UI上顯示特效Or物體(無背景)

2021-10-14 15:31:28 字數 1467 閱讀 4115

一般的方法: 是建立乙個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...