本書系統(tǒng)講解Unity編輯器開發(fā)工作中常用的類與方法,以基礎知識為核心,結合實戰(zhàn)案例,引導讀者漸進式學習Unity編輯器開發(fā)相關的技術知識。
本書共分為七章,依次介紹編輯器開發(fā)的基礎、如何自定義編輯器功能菜單、如何自定義檢視面板、如何自定義編輯器窗口、如何定制編輯器的外觀樣式、如何使用編輯器輔助開發(fā)調試,以及在編輯器環(huán)境中的數(shù)據(jù)與資產(chǎn)管理等相關內(nèi)容。
本書既適合初學者入門,也對有多年工作經(jīng)驗的開發(fā)者具有參考價值。
《Unity編輯器開發(fā)與拓展》對基于Unity的編輯器開發(fā)循序漸進地進行了講解,配合實例演示如何自定義工具,優(yōu)化開發(fā)流程,是Unity開發(fā)者提升效率、創(chuàng)造力的工具書。
Unity作為一款強大的游戲開發(fā)引擎,其編輯器功能的可擴展性和可定制性一直是開發(fā)者所青睞的。作者在最初學習時,苦于沒有系統(tǒng)的學習資料,只能在不斷摸索中積累經(jīng)驗。本次寫作的目的是希望本書能夠為想要學習編輯器開發(fā)方向內(nèi)容的開發(fā)者提供詳細的學習資料。
本書第1章介紹了編輯器開發(fā)的基礎,包括繪制各種類型的編輯器元素,以及如何進行編輯器布局。第2~4章分別介紹了如何自定義編輯器功能菜單、檢視面板和編輯器窗口。第5章介紹了與編輯器外觀相關的內(nèi)容,包括皮膚、樣式、圖標和動畫。第6章介紹了Gizmos、Handles兩個可視化輔助工具。第7章介紹了編輯器環(huán)境中數(shù)據(jù)與資產(chǎn)管理的相關內(nèi)容。
通過本書的學習,讀者將能夠輕松地定制工作所需的編輯器工具,提高工作效率,優(yōu)化工作流程。本書在寫作過程中使用的Unity版本為2020.3.16f1c1,因為不同版本的API可能會略有不同,因此建議讀者在學習過程中使用相同的版本。掃描目錄上方的二維碼可下載本書源代碼。
在寫作過程中,作者得到了家人和朋友的幫助,在此表示感謝。同時,感謝清華大學出版社趙佳霓編輯的細心指導。
限于作者知識水平,書中難免存在不妥之處,歡迎讀者批評指正。
張壽昆
2024年3月???????
II
III
張壽昆,一名Unity開發(fā)工程師,CSDN博客專家、華為云云享專家、阿里云專家博主、2024年度Unity價值專家,從事于游戲、VR、AR、MR、虛擬仿真、數(shù)字孿生、元宇宙等相關領域,具有多年開發(fā)經(jīng)驗,現(xiàn)就任于某國企互聯(lián)網(wǎng)公司。
第1章 編輯器開發(fā)基礎 1
1.1 繪制編輯器元素 2
1.1.1 文本 2
1.1.2 按鈕 4
1.1.3 開關 6
1.1.4 輸入框 6
1.1.5 下拉列表 8
1.1.6 滑動條 9
1.1.7 折疊欄 10
1.2 編輯器布局 11
1.2.1 水平與垂直布局 11
1.2.2 GUI中的滾動列表 13
1.2.3 GUI元素和布局的大小 14
1.2.4 GUI元素之間的間隙 18
第2章 自定義功能菜單 20
2.1 MenuItemAttribute 20
2.1.1 自定義Unity頂部的功能菜單 20
2.1.2 自定義Hierarchy窗口右鍵功能菜單 28
2.1.3 自定義Project窗口右鍵功能菜單 33
2.1.4 自定義組件下拉列表功能菜單 37
2.2 ContextMenuAttribute 40
2.3 ContextMenuItemAttribute 41
第3章 自定義檢視面板 43
3.1 創(chuàng)建自定義編輯器類 43
3.1.1 如何自定義檢視面板中的GUI內(nèi)容 44
3.1.2 如何檢測和應用修改 46
3.1.3 編輯器操作的撤銷與恢復 48
3.1.4 實現(xiàn)DoTween動畫參數(shù)的編輯 53
3.1.5 如何自定義預覽窗口 58
3.1.6 擴展默認組件的檢視面板 67
3.2 PropertyDrawer 74
3.2.1 內(nèi)置的PropertyDrawer 74
3.2.2 內(nèi)置的DecoratorDrawer 78
3.2.3 如何創(chuàng)建自定義PropertyDrawer 79
第4章 自定義編輯器窗口 86
4.1 如何創(chuàng)建新的編輯器窗口 86
4.1.1 打開新創(chuàng)建的編輯器窗口 86
4.1.2 定義編輯器窗口中的GUI內(nèi)容 87
4.1.3 如何創(chuàng)建彈出窗口 89
4.1.4 開發(fā)備忘錄 93
4.1.5 Protobuf通信協(xié)議文件編輯器 105
4.1.6 ScriptableWizard 117
4.2 如何擴展默認的編輯器窗口 120
4.2.1 擴展Hierarchy窗口 120
4.2.2 擴展Project窗口 121
4.3 Game窗口中的GUI 123
4.3.1 運行時控制臺窗口 125
4.3.2 運行時層級窗口 133
4.3.3 運行時檢視窗口 137
第5章 編輯器外觀 151
5.1 GUI皮膚 151
5.2 GUI樣式 154
5.3 GUI圖標 159
5.4 GUI動畫 163
第6章 可視化輔助工具 165
6.1 Gizmos 165
6.1.1 概述 165
6.1.2 常用函數(shù) 169
6.1.3 使用Gizmos輔助調試相機的避障功能 176
6.2 Handles 181
6.2.1 概述 181
6.2.2 常用函數(shù) 182
6.2.3 實現(xiàn)一個路徑編輯工具 194
第7章 編輯器環(huán)境下的數(shù)據(jù)與資產(chǎn)管理 207
7.1 EditorPrefs 207
7.2 AssetDatabase 209
7.2.1 資產(chǎn)管理 209
7.2.2 AssetBundle管理 232
7.2.3 CustomPackage管理 244
7.3 ScriptableObject 245
7.4 AssetModificationProcessor 248
7.5 AssetPostprocessor 251
7.6 BuildPipeline 257
7.6.1 AssetBundle構建工具 258
7.6.2 應用程序批量構建工具 266
IV
V