Unity 3D 游戲開發, 2/e Unity 3D游戏开发 第2版
宣雨松
- 出版商: 人民郵電
- 出版日期: 2018-09-01
- 定價: $534
- 售價: 8.5 折 $454
- 語言: 簡體中文
- 頁數: 419
- 裝訂: 平裝
- ISBN: 7115492948
- ISBN-13: 9787115492944
-
相關分類:
遊戲引擎 Game-engine
已絕版
買這商品的人也買了...
-
$500$425 -
$880$695 -
$719$683 -
$2143D數學基礎:圖形與遊戲開發
-
$806Unity 5.X 從入門到精通
-
$680$578 -
$403Unity 3D 實戰核心技術詳解
-
$250Unity 人工智能遊戲開發, 2/e (Unity AI Game Programming, 2/e)
-
$390$371 -
$590$466 -
$403Unity AR 增強現實完全自學教程 (全彩)
-
$690$587 -
$509Unity 案例開發大全 第2版
-
$580$493 -
$658C# 從現象到本質
-
$199獵豹行動 : 硝煙中的敏捷轉型之旅
-
$354$336 -
$653Unity 2017經典游戲開發教程 算法分析與實現
-
$250$225 -
$709Unity 與 C++ 網絡遊戲開發實戰:基於 VR、AI 與分佈式架構
-
$602Unity 游戲開發技術詳解與典型案例
-
$560$476 -
$580$458 -
$580$435 -
$474$450
相關主題
商品描述
Unity 是一款市場佔有率非常高的商業遊戲引擎,橫跨25 個主流遊戲平台。
本書基於Unity 2018,結合2D 遊戲開發和3D 遊戲開發的案例,
詳細介紹了它的方方面面,內容涉及編輯器、遊戲腳本、UGUI 遊戲界面、
動畫系統、持久化數據、靜態對象、多媒體、資源加載與優化、自動化與打包等。
本書適合初學者或者有一定基礎的開發者閱讀。
作者簡介
宣雨松
雨松MOMO技術博客博主,10年以上遊戲開發經驗,
北京某上市遊戲公司Unity技術專家,
國內Unity User Group意見領袖,UVP價值專家,來自古城西安。
目錄大綱
第1章基礎知識1
1.1 Unity簡介1
1.2跨平台與多工種協作1
1.3 Unity版本2
1.4 Unity內置資源或拓展資源3
1.5示例項目打包與發布5
1.6 Unity服務7
1.7小結8
第2章編輯器的結構9
2.1遊戲項目9
2.1.1創建項目9
2.1.2打開項目10
2.1.3版本管理10
2.1.4安裝多個版本的Unity 11
2.2 Project視圖12
2.2.1創建資源12
2.2.2搜索資源13
2.2.3搜索標籤14
2.3 Hierarchy視圖16
2.3.1創建遊戲對象16
2.3.2搜索遊戲對象16
2.4 Inspector視圖17
2.4.1標題欄17
2.4.2組件欄18
2.5 Scene視圖19
2.5.1導航欄19
2.5.2標題欄20
2.5.3坐標系控制器21
2.5.4視圖預覽21
2.6 Game視圖22
2.6.1標題欄22
2.6.2視圖預覽23
2.7導航欄視圖23
2.8其他功能25
2.8.1小鎖頭25
2.8.2窗口菜單25
2.8.3保存組件參數26
2.8.4 Package Manager 26
2.9小結27
第3章拓展編輯器28
3.1拓展Project視圖28
3.1.1拓展右鍵菜單28
3.1.2創建菜單30
3.1.3拓展佈局31
3.1.4監聽事件32
3.2拓展Hierarchy視圖33
3.2.1拓展菜單33
3.2.2拓展佈局34
3.2.3重寫菜單35
3.3拓展Inspector視圖37
3.3.1拓展源生組件38
3.3.2拓展繼承組件38
3.3.3組件不可編輯40
3.3.4 Context菜單42
3.4拓展Scene視圖44
3.4.1輔助元素44
3.4.2輔助UI 45
3.4.3常駐輔助UI 46
3.4.4禁用選中對象47
3.5拓展Game視圖48
3.6 MenuItem菜單49
3.6.1覆蓋系統菜單50
3.6.2自定義菜單50
3.6.3源生自定義菜單51
3.6.4拓展全局自定義快捷鍵52
3.7面板拓展53
3.7.1 Inspector面板53
3.7.2 EditorWindows窗口55
3.7.3 EditorWindows下拉菜單56
3.7.4預覽窗口57
3.7.5獲取預覽信息59
3.8 Unity編輯器的源碼60
3.8.1查看DLL 60
3.8.2清空控制台日誌61
3.8.3獲取EditorStyles樣式63
3.8. 4獲取內置圖標樣式64
3.8.5拓展默認面板66
3.8.6例子:查找ManagedStatic-References()靜態引用67
3.8.7 UIElements 69
3.8.8查詢系統窗口71
3.8.9自定義資源導入類型73
3.9小結74
第4章遊戲腳本75
4.1創建腳本75
4.1.1腳本模板75
4.1.2拓展腳本模板76
4.2腳本的生命週期78
4.2.1腳本綁定事件80
4.2.2腳本初始化和銷毀80
4.2.3腳本更新與協程任務82
4.2.4停止協程任務83
4.2.5使用OnGUI顯示FPS 84
4.3多腳本管理85
4.3.1腳本的執行順序85
4.3.2多腳本優化86
4.4腳本序列化86
4.4.1查看數據87
4.4.2私有序列化數據88
4.4.3 serializedObject 90
4.4.4監聽部分元素修改事件91
4.4.5序列化/反序列化監聽92
4.4.6 ScriptableObject 95
4.4.7腳本的Attributes特性97
4.4.8單例腳本99
4.4.9定時器100
4.4.10 CustomYieldInstruction 101
4.4.11工作線程103
4.5腳本編譯104
4.5.1編譯規則105
4.5.2優化編譯105
4.5.3編譯DLL 105
4.5.4腳本跨平台106
4.5.5程序集定義106
4.5.6日誌107
4.6腳本調試109
4.7小結111
第5章UGUI遊戲界面112
5.1基礎元素112
5.1.1 Text 112
5.1. 2描邊和陰影113
5.1.3動態字體113
5.1.4字體花屏114
5.1.5 Image組件115
5.1.6 Raw Image組件116
5.1.7 Button組件116
5.1.8 Toggle組件117
5.1.9 Slider組件118
5.1 .10 Scrollbar & ScrollView組件119
5.1.11使用ScrollRect組件製作遊戲搖桿120
5.2事件系統121
5.2.1 UI事件122
5.2.2 UI事件管理124
5.2.3 UnityAction和UnityEvent 126
5.2.4 RaycastTarget優化128
5.2.5滲透UI事件129
5.2.6例子——新手引導聚合動畫131
5.3 Canvas組件135
5.3.1自適應屏幕135
5.3 .2錨點對齊方式137
5.3.3背景圖全屏138
5.3.4佈局組件139
5.3.5 Canvas優化139
5.4 Atlas 139
5.4.1創建Atlas 139
5.4.2讀取Atlas 140
5.4.3 Variant 141
5.4.4多圖集管理142
5.5 UGUI實例142
5.5.1置灰142
5.5.2粒子特效與UI的排序145
5.5.3 Mask & RectMask2D裁切147
5.5.4粒子的裁切148
5.5.5粒子自適應152
5.5.6滑動列表嵌套154
5.5.7 UI模板嵌套156
5.5.8 UI特效與界面分離157
5.5.9輸入事件161
5.5.10按鈕不規則點擊區域162
5.5.11更換默認Shader 164
5.5.12小地圖優化164
5.5.13查看UGUI源碼165
5.6小結165
第6章2D遊戲開發166
6.1 Sprite 166
6.1.1 2D攝像機與分辨率自適應167
6.1.2 Sprite Renderer排序169
6.1 .3裁切170
6.2 Sprite動畫171
6.2.1創建2D動畫171
6.2.2 2D動畫控制器173
6.3 Tile地圖176
6.3.1創建Tile 176
6.3.2 Tile Palette 178
6.3.3編輯Tile 178
6.3.4多Tile編輯與排序179
6.3.5拓展Tile Palette 180
6.3.6拓展Tile 183
6.3.7更新Tile 184
6.4 2D碰撞檢測186
6.4.1 Collider 2D 186
6.4.2 Rigidbody 2D 187
6.4.3碰撞事件189
6.4.4碰撞方向191
6.4.5觸發器監聽193
6.4.6 Effectors 2D 193
6.4.7優化194
6.4.8計算區域194
6.5小結195
第7章動畫系統196
7.1模型196
7.1 .1 Mesh Filter 196
7.1.2 Mesh Renderer 197
7.1.3 Prefab 197
7.2動畫編輯器198
7.2.1編輯器面板198
7.2.2在編輯器中添加事件199
7.3導入類動畫200
7.3.1人形重定向動畫200
7.3.2通用動畫202
7.3.3老版動畫203
7.3.4導入類動畫事件203
7.4動畫控制器203
7.4.1系統狀態204
7.4.2切換條件205
7.4.3狀態機腳本206
7.4.4 IK動畫207
7.4.5 Root Motion 209
7.4.6 Avatar Mask 210
7.4.7層211
7.4. 8 Blend Tree 212
7.4.9非運行播放動畫213
7.4.10 Animator Override Controller 214
7.4.11 RuntimeAnimator-Controller 215
7.5 TimeLine編輯器215
7.5.1創建Timeline 216
7.5.2 Activation Track 217
7.5.3 Animation Track 217
7.5.4 Audio Track 218
7.5.5 Control Track 218
7.5.6 Playable Track 219
7.5.7自定義Track 221
7.6 Playables 222
7.6.1播放動畫222
7.6.2動畫混合224
7.6.3音頻混合225
7.6.4自定義腳本226
7.7 Constraint 227
7.7.1 Aim Constraint 227
7.7.2 Parent Constraint 228
7.7.3腳本控制約束229
7.8小結229
第8章持久化數據230
8.1 Excel 230
8.1.1 EPPlus 230
8.1.2讀取Excel 230
8.1.3寫入Excel 232
8.1.4 JSON 233
8.1.5 JSON支持字典235
8.2文件讀取與寫入236
8.2.1 PlayerPrefs 237
8.2.2 EditorPrefs 237
8.2.3 PlayerPrefs保存複雜結構238
8.2.4 TextAsset 239
8.2.5讀寫文本240
8.2.6運行期讀寫文本240
8.2.7 PersistentDataPath目錄242
8.2.8遊戲存檔243
8.3 XML 247
8.3.1創建XML 247
8.3.2讀取與修改248
8.3.3 XML文件249
8.4 YAML 251
8.4.1 YamlDotNet 252
8.4.2序列化和反序列化252
8.4.3讀取配置253
8.5小結255
第9章靜態對象256
9.1 Lightmap 256
9.1.1設置烘焙貼圖256
9.1.2實時光和焙貼光共存258
9.1.3燈光管理258
9.1.4運行時更換烘焙貼圖258
9.1.5動態更換遊戲對象260
9.1.6複製遊戲對象262
9.2遮擋剔除263
9.2.1遮擋與被遮擋264
9.2.2遮擋與被遮擋事件265
9.2.3動態剔除267
9.2.4自定義遮擋剔除267
9.3 Batching(靜態合批) 268
9.3.1設置靜態合批268
9.3.2腳本靜態合批269
9.3.3動態合批269
9.3.4靜態合批的隱患270
9.4尋路網格270
9.4.1設置尋路270
9.4. 2連接兩點272
9.4.3獲取尋路路徑272
9.4.4動態阻擋274
9.4.5導出尋路網格信息274
9.5反射探頭277
9.6小結278
第10章多媒體279
10.1音頻279
10.1.1音頻文件279
10.1.2 Audio Source 280
10.1.3 3D音頻280
10.1.4代碼控製播放281
10.1.5混音區283
10.1.6 Audio Mixer 284
10.1.7錄音284
10.1.8聲音進度285
10.2視頻287
10.2.1視頻文件287
10.2.2視頻渲染模式287
10.2.3視頻自適應288
10.2.4 UI蓋在視頻之上289
10.2.5視頻渲染在材質上290
10.2.6視頻Render Texture 291
10.2.7播放工程外視頻291
10.2.8自定義視頻顯示293
10.2.9視頻進度293
10.3小結294
第11章資源加載與優化295
11.1編輯模式295
11.1.1加載資源295
11.1.2實例化Prefab 296
11.1.3創建Prefab 297
11.1.4更新Prefab 298
11.1.5卸載資源299
11.1.6遊戲對象與資源的關係299
11.2版本管理300
11.2.1 .meta文件300
11.2.2多工程301
11.2.3同步文件302
11.2.4 SVN外鏈303
11.3運行模式304
11.3.1引用資源304
11.3.2 Resources 305
11.3.3刪除對象306
11.3.4刪除資源306
11.3.5 GC 307
11.4 AssetBundle 308
11.4.1設置AssetBundle 308
11.4.2依賴關係310
11.4.3通過腳本設置依賴關係311
11.4.4壓縮格式311
11.4.5加載包體內的AssetBundle 312
11.4.6下載AssetBundle 313
11.4.7加載場景314
11.4.8卸載AssetBundle 315
11.5遊戲對象315
11.5.1創建遊戲對象316
11.5.2 Transform設置排序316
11.5.3刪除節點317
11.5.4獲取遊戲對象317
11.5.5管理遊戲組件318
11.6優化工具319
11.6.1重複無用資源319
11.6.2查看內存321
11.6.3查看CPU效率321
11.6.4自定義觀察區間322
11.6.5 Profiler信息的導出與導入323
11.6.6 Frame Debugger 324
11.7資源管理實例325
11.7.1特殊內置的文件夾325
11.7.2隱藏文件夾326
11.7.3 Resources與AssetBundle無縫切換326
11.7.4資源加載策略329
11.7.5資源更新329
11.7.6資源引用關係329
11.7.7系統資源修改332
11.7.8 AssetBundle裡的腳本333
11.7.9熱更新代碼334
11.8小結335
第12章自動化與打包336
12.1資源導入336
12.1.1監聽導入事件336
12.1.2自動設置貼圖壓縮格式337
12.1.3自動設置模型339
12.1.4禁止模型生成材質文件340
12.1.5刪除移動資源事件341
12.1.6選擇性自動設置342
12.1.7主動設置342
12.1.8待保存狀態343
12.1.9自動執行MenuItem 344
12.2配置錯誤345
12.2.1主動檢查工具345
12.2.2被動檢查工具346
12.2.3導出類檢查工具346
12.2.4導出UI 346
12.2.5生成UI代碼347
12.2.6導出模型351
12.2.7不參與保存對象352
12.2.8導出場景353
12.2.9過濾無用場景355
12.3自動打包356
12.3.1打包前後事件356
12.3.2打包後自動壓縮357
12.3.3用C#調用shell腳本359
12.3.4等待shell結束359
12.3.5 shell腳本調用C# 360
12.3.6 shell腳本自動打包362
12.3.7徹底解放程序員的雙手365
12.4自動構建圖集與壓縮366
12.4.1 UI圖集的壓縮366
12.4.2非UI圖集壓縮370
12.5小結371
第13章3D遊戲開發372
13.1 Shader 372
13.1.1固定渲染管線372
13.1.2可編程渲染管線375
13.1.3可編程渲染管線的表面著色器378
13.1.4深度排序379
13.1.5透明381
13.1.6裁切382
13.1.7著色器變體採集383
13.2攝像機384
13.2.1 3D坐標轉換屏幕坐標384
13.2.2 3D坐標轉換UI坐標385
13.2.3主攝像機387
13.2.4在UI上顯示模型387
13.2.5 Render Texture 389
13.2.6在Render Texture上顯示帶特效的模型390
13.2.7 LOD Group 392
13.3場景管理393
13.3.1切換場景393
13.3.2 DontDestroyOnLoad 393
13.3.3異步加載場景以及進度393
13.3.4多場景395
13.3 .5多場景遊戲對像管理396
13.3.6場景切換事件397
13.3.7多場景烘焙398
13.4輸入事件398
13.4.1全局事件398
13.4.2射線399
13.4.3點選3D模型400
13.4.4通過點擊控制人物移動402
13.5物理碰撞403
13.5.1碰撞器404
13.5.2角色控制器404
13.5.3碰撞區域405
13.5.4碰撞檢測406
13.5.5碰撞觸發器407
13.5.6物理調試器408
13.6實戰技巧409
13.6.1 3D頭頂文字409
13.6.2圖文混排410
13.6.3圖片數字410
13.6.4遊戲對象緩存池412
13.6.5遊戲資源緩存池414
13.6. 6運行時合併網格414
13.6.7運行時合併貼圖416
13.7小結419