URP | Shader預(yù)定義UI

目的
學(xué)習(xí)ShaderUI基礎(chǔ)語法。
對不同種類的整理
基礎(chǔ)語法
Enum類(枚舉)
枚舉,最多可指定 7 個名稱。常用的枚舉類如下。
當(dāng)然也可以自定義枚舉,可以通過KeyWrod來控制。
混合模式
注意:用法

????效果????

深度開關(guān)
ZWriteMode是沒有內(nèi)置的,實際上也只有on和off兩個狀態(tài),所以用Toogle其實也可以,我這里是直接用[Enum(Off, 0, On, 1)]這樣的寫法聲明了個新的自定義Enum

剔除模式
是系統(tǒng)默認(rèn)的是否開啟 雙面設(shè)置

????????????????Off ? 開啟雙面
????????????????Front ?背面
????????????????Back ?正面
深度測試
這個定義是系統(tǒng)默認(rèn)的

顏色通道寫入遮罩
這里第一個輸出顏色通道

效果

這樣就可以使用到,一張貼圖不同通道的輸出。
代碼用法
IntRange
顯示一個適用于?Range?著色器屬性的整數(shù)滑動條。
效果

Header
顯示一個頭部名稱。
[Header()]
注意:
不支持漢字,數(shù)字以及大部分符號
在著色器屬性之前創(chuàng)建一個標(biāo)題文本。
效果

Space
在兩個變量之間增加空白
兩種使用方法,一種是單獨一行,也可以增加到屬性變量前。
效果

KeywordEnum
關(guān)鍵字枚舉,并啟用相應(yīng)的著色器關(guān)鍵字。它可在著色器中與“#pragma multi_compile”配合使用,以啟用或禁用部分著色器代碼。**每個名稱都將 采用“屬性名”+ 下劃線 +“枚舉名”**這種形式的大寫著色器關(guān)鍵字。最多可提供?9?個名稱。
注意:大寫


Toggle類(開關(guān))
以開關(guān)形式顯示浮點值。屬性值為?0?或?1,具體取決于開關(guān)狀態(tài)。當(dāng)開關(guān)處于打開狀態(tài)時,將設(shè)置一個帶有大寫屬性名稱 +“_ON”?的著色器關(guān)鍵字,或者一個顯式指定的著色器關(guān)鍵字。
效果

PowerSlider
顯示一個具有對應(yīng)于?Range?著色器屬性的非線性響應(yīng)的滑動條。意思就是,讓Range滑桿更加方便調(diào)整細(xì)微的值。以
[PowerSlider(1.0)]
為分界,當(dāng)值為1.0時,效果與range一致。當(dāng)值<1.0時,值越大可調(diào)整的范圍越大。當(dāng)值>1.0時,值越小可調(diào)整的范圍越大??梢愿?xì)地在這些區(qū)間進(jìn)行微調(diào)。當(dāng)值為0.1時

我們可以看到他們倆的位置是不一樣的,上面的會更精細(xì)的調(diào)整。
當(dāng)值為10時

當(dāng)值為0.1的時

總結(jié):PowerSlider值類似曲線的控制值,值越大,小值的范圍越好調(diào)整,值越小,大值的可調(diào)整范圍越大。
總結(jié)
效果
面板屬性

全代碼
全代碼