編輯器擴充套件篇 使用GUIStyle讓編輯器更好看

2021-10-06 05:49:52 字數 2806 閱讀 9765

guilayouteditorguilayout裡面經常能看到guistyle這個引數。

guistyle主要作用就是讓編輯器更好看一點。下面兩張圖,乙個使用了guistyle,乙個沒有使用。(準確來說應該是,乙個使用了特定的guistyle,乙個使用了預設的guistyle,即呼叫guilayout和editorguilayout裡面的函式時沒有傳入guistyle的引數)

當然如果你對美觀沒有什麼追求的話完全可以不用了解guistyle

使用guistyle有兩種方法,一種是使用unity內部定義好的樣式,一種是自己新建。先講使用自帶的樣式。

1. 使用字串當成guistyle的引數傳入

guilayout.

beginhorizontal

("helpbox"

);

上面的**意思是使用helpbox這個樣式。還有很多其它的樣式,這些樣式都在gui.skin.customstyles裡面。關於這裡面的所有樣式,可以參考我的github工程。

這個工程把unity內部所有的樣式都畫了出來,還附帶了搜尋功能。

這裡還有乙個知識點,guilayout.beginhorizontal(guistyle style)

明明這個函式的引數是guistyle型別的,為何我可以傳入string型別?原因在於guistyle內部定義了轉換運算子。如下面的寫法意思是將string轉成guistyle

由於看不到具體實現,可能有些人會蒙蔽,我寫個簡單的例子:

定義乙個結構體:

public

struct mydata

public

static

implicit

operator

float

(mydata data)

=> data.

value

;public

static

explicit

operator

mydata

(float v)

=>

newmydata

(v);

}

呼叫方:

public

static

void

main()

除了使用預設的guistyle外還可以自定義guistyle

2. 自定義guistyle

_style =

newguistyle

( editorstyles.helpbox )

;_style.alignment = textanchor.middlecenter;

_style.fontsize =16;

_style.fontstyle = fontstyle.bold;

建構函式有兩種,除了上面寫的以乙個預設的guistyle進行改造,還可以自己新建乙個空的從頭寫。上面的**使用了editorstyles裡面的guistyle,裡面都是預設的樣式,在使用在guilayouteditorguilayout類裡面的方法的時候如果不傳入guistyle引數的話使用的就是這樣預設的樣式。

一般不推薦從頭寫。都是用gui.skin.customstyles裡面,或者直接使用odin這種編輯器外掛程式進行編輯器面板的開發。強烈推薦odin。完美解決了unity原生編輯器又難用又醜的問題。我願稱之為編輯器擴充套件最強外掛程式。

這麼說起來,都有odin這種玩意了,學習guistyle除了看懂別人的**外平時用處不太大 ?。不過至少本篇文章還教大家使用轉換運算子了,也算有所收穫吧。

既然都看到這裡了,不如關注一下吧

csdn部落格:

知乎專欄:

q群:891809847

Unity 編輯器擴充套件 入門篇

目前包含功能主要有 設定預製tag 設定預製字型。右鍵複製物件路徑 絕對路徑和相對路徑 面板截圖如下 直接上 using system.io using unityeditor using unityengine using unityengine.ui public class tool tend...

Unity編輯器擴充套件

unity引擎除了提供大部分通用的功能以外,還為開發者提供了編輯器的擴充套件開發介面,開發者可以編寫編輯器指令碼,打造適合自己的遊戲輔助工具和定製的編輯器。以前指令碼開發中使用的一些api和元件類,都屬於執行時類,unity還提供了編輯器類用於編輯器的擴充套件開發,包括編輯器環境下使用的gui類,編...

unity編輯器擴充套件篇 中文字段顯示

因為unity原生編輯器或多或少不滿足業務需求或使用者的審美,我常常需要對編輯器進行擴充套件。這不,我很不滿unity原生欄位在inspect面板的顯示,希望欄位能以中文方式顯示字段,unity編輯器擴充套件這一強大的功能給了我任性的需求提供了解決之道。只有使用過unity的都清楚你在類中定義怎樣的...