當前位置:首頁 >教程首頁 > 遊戲程序 > Unity3D遊戲開發工程師班 >Unity如何預定義UI?

Unity如何預定義UI?

發布時間:2022-05-09 10:41:25

Hello,大家好,有人問“Unity如何預定義UI?”今天給大家帶來不寫GUIEditor就能實現的預定義UI,我是麥田。

1、寫在前麵

出於性能原因,EditorGUILayout 函數不能與 MaterialPropertyDrawers 一起使用。

2、Enum類(枚舉)

枚舉,最多可指定 7 個名稱。常用的枚舉類如下。

當然也可以自定義枚舉,可以通過KeyWrod來控製。

混合模式

[Enum(UnityEngine.Rendering.BlendOp)] _BlendOp ("BlendOp", Float) = 0

[Enum(UnityEngine.Rendering.BlendMode)] _SrcBlend ("SrcBlend", Float) = 1

[Enum(UnityEngine.Rendering.BlendMode)] _DstBlend ("DstBlend", Float) = 0

深度開關

[Enum(Off, 0, On, 1)]_ZWriteMode ("ZWriteMode", float) = 1

ZWriteMode是沒有內置的,實際上也隻有on和off兩個狀態,所以用Toogle其實也可以,我這裏是直接用[Enum(Off, 0, On, 1)]這樣的寫法聲明了個新的自定義Enum

剔除模式

[Enum(UnityEngine.Rendering.CullMode)]_CullMode ("CullMode", float) = 2

深度測試

[Enum(UnityEngine.Rendering.CompareFunction)]_ZTestMode ("ZTestMode", Float) = 4

顏色通道寫入遮罩

[Enum(UnityEngine.Rendering.ColorWriteMask)]_ColorMask ("ColorMask", Float) = 15

[Enum(UnityEngine.Rendering.CompareFunction)]_StencilComp ("Stencil Comparison", Float) = 8

[Enum(UnityEngine.Rendering.StencilOp)]_StencilPass ("Stencil Pass", Float) = 0

[Enum(UnityEngine.Rendering.StencilOp)]_StencilFail ("Stencil Fail", Float) = 0

[Enum(UnityEngine.Rendering.StencilOp)]_StencilZFail ("Stencil ZFail", Float) = 0

3、IntRange

顯示一個適用於 Range 著色器屬性的整數滑動條。

[IntRange]_StencilWriteMask ("Stencil Write Mask", Range(0,255)) = 255

[IntRange]_StencilReadMask ("Stencil Read Mask", Range(0,255)) = 255

[IntRange]_Stencil ("Stencil ID", Range(0,255)) = 0

4、Header

顯示一個頭部名稱。

[Header()]

[Header(A group of things)] _Prop1 ("Prop1", Float) = 0

不支持漢字,數字以及大部分符號

在著色器屬性之前創建一個標題文本。

5、Space

在著色器屬性之前創建垂直空間。

[Space] _Prop1 ("Prop1", Float) = 0

[Space(50)] _Prop2 ("Prop2", Float) = 0

6、KeywordEnum

關鍵字枚舉,並啟用相應的著色器關鍵字。它可在著色器中與“#pragma multi_compile”配合使用,以啟用或禁用部分著色器代碼。每個名稱都將 采用“屬性名”+ 下劃線 +“枚舉名”這種形式的大寫著色器關鍵字。最多可提供 9 個名稱。

[KeywordEnum(None, Add, Multiply)] _Overlay ("Overlay mode", Float) = 0

#pragma multi_compile _OVERLAY_NONE _OVERLAY_ADD _OVERLAY_MULTIPLY

7、Toggle類(開關)

以開關形式顯示浮點值。屬性值為 0 或 1,具體取決於開關狀態。當開關處於打開狀態時,將設置一個帶有大寫屬性名稱 +“_ON” 的著色器關鍵字,或者一個顯式指定的著色器關鍵字。

[Toggle] _Invert ("Invert?", Float) = 0

[Toggle(ENABLE_FANCY)] _Fancy ("Fancy?", Float) = 0

8、PowerSlider

[PowerSlider(3.0)] _Shininess ("Shininess", Range (0.01, 1)) = 0.08

顯示一個具有對應於 Range 著色器屬性的非線性響應的滑動條。意思就是,讓Range滑杆更加方便調整細微的值。以[PowerSlider(1.0)]為分界,當值為1.0時,效果與range一致。當值<1.0時,值越大可調整的範圍越大。當值>1.0時,值越小可調整的範圍越大。可以更精細地在這些區間進行微調。

當值為0.1時

1.jpg

當值為10時

2.jpg

PowerSlider值類似曲線的控製值,值越大,小值的範圍越好調整,值越小,大值的可調整範圍越大。

华体会hth体育网 賞析
  • 2101期學員李思庭作品

    2101期學員李思庭作品

  • 2104期學員林雪茹作品

    2104期學員林雪茹作品

  • 2107期學員趙淩作品

    2107期學員趙淩作品

  • 2107期學員趙燃作品

    2107期學員趙燃作品

  • 2106期學員徐正浩作品

    2106期學員徐正浩作品

  • 2106期學員弓莉作品

    2106期學員弓莉作品

  • 2105期學員白羽新作品

    2105期學員白羽新作品

  • 2107期學員王佳蕊作品

    2107期學員王佳蕊作品

專業問題谘詢

你擔心的問題,火星幫你解答
  • 廣州視頻剪輯培訓機構有哪些

    在廣州這座繁華的都市中,數字創意產業正蓬勃發展,廣州視頻剪輯培訓成為許多影視愛好者的理想起點。隨著短視頻平台和影視製作需求的激......

  • 北京UI設計培訓免費試聽攻略

    在北京這樣一座充滿創意活力的都市,UI設計培訓正成為無數年輕人追逐職業夢想的跳板。隨著數字經濟的蓬勃發展,UI設計行業在北京展......

  • 北京平麵設計培訓機構排名榜

    在當今創意經濟蓬勃發展的浪潮中,北京平麵設計培訓成為眾多職業追求者的理想起點。這座城市的活力與機遇吸引著無數人投身視覺藝術領域......

  • 北京虛幻引擎課程內容全解析

    在影視和設計行業蓬勃發展的今天,虛幻引擎作為核心技術工具,正引領著視覺創作的革命。越來越多的人渴望掌握這門技能,而專業的培訓成......

  • 北京平麵設計課程如何選擇適合的

    在北京這座文化創意中心,平麵設計培訓行業蓬勃發展,為渴望入行的學員提供了豐富機遇。隨著數字媒體和影視產業的崛起,掌握視覺傳達技......

  • 上海3D建模短訓班課程內容解析

    在上海這座充滿活力的城市,影視和設計行業正迎來前所未有的發展機遇,數字技術的進步讓3D建模成為創意產業的核心驅動力。參加專業的......

×

同學您好!

您已成功報名0元試學活動,老師會在第一時間與您取得聯係,請保持電話暢通!
確定