在guilayout和editorguilayout裡面經常能看到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,裡面都是預設的樣式,在使用在guilayout和editorguilayout類裡面的方法的時候如果不傳入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的都清楚你在類中定義怎樣的...