Unity 3D 游戲開發, 2/e Unity 3D游戏开发 第2版

宣雨松

  • 出版商: 人民郵電
  • 出版日期: 2018-09-01
  • 定價: $534
  • 售價: 8.5$454
  • 語言: 簡體中文
  • 頁數: 419
  • 裝訂: 平裝
  • ISBN: 7115492948
  • ISBN-13: 9787115492944
  • 相關分類: 遊戲引擎 Game-engine
  • 無法訂購

  • Unity 3D 游戲開發, 2/e-preview-1
  • Unity 3D 游戲開發, 2/e-preview-2
  • Unity 3D 游戲開發, 2/e-preview-3
  • Unity 3D 游戲開發, 2/e-preview-4
  • Unity 3D 游戲開發, 2/e-preview-5
  • Unity 3D 游戲開發, 2/e-preview-6
  • Unity 3D 游戲開發, 2/e-preview-7
Unity 3D 游戲開發, 2/e-preview-1

買這商品的人也買了...

商品描述

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