《Unity 2017 從入門到精通》是一本人民郵電出版社出版的圖書,作者是劉向群,吳彬。本書共分為28章,主要介紹Unity 2017的安裝和使用方法,以循序漸進的方式詳細講解Unity操作界面、Timeline、資源導入流程、場景創建、粒子系統、Mecanim動畫系統、物理引擎、地形系統、腳本語言開發、Shader開發、腳本調試最佳化與記憶體管理、跨平台發布等內容。
基本介紹
- 中文名:Unity 2017 從入門到精通
- 作者:劉向群、吳彬
- 出版社:人民郵電出版社
- 出版時間:2020年6月
- 頁數:544 頁
- 定價:98 元
- 開本:16 開
- 裝幀:平裝
- ISBN:9787115535177
內容簡介,圖書目錄,作者簡介,
內容簡介
Unity是在遊戲開發和虛擬現實開發方面套用得非常廣泛的軟體,其功能強大,用戶體驗很友好,全世界已經有近千萬註冊用戶。本書共分為28章,主要介紹Unity 2017的安裝和使用方法,以循序漸進的方式詳細講解Unity操作界面、Timeline、資源導入流程、場景創建、粒子系統、Mecanim動畫系統、物理引擎、地形系統、腳本語言開發、Shader開發、腳本調試最佳化與記憶體管理、跨平台發布等內容。書中每章都安排了有針對性的項目實例,可以幫助讀者輕鬆掌握軟體的使用技巧。為了方便讀者學習,本書還附贈相關的Unity工程源檔案以幫助讀者快速掌握Unity開發技術,並在最後一章詳細介紹了Unity 2018版本的新特性。
本書面向廣大Unity 初學者,以及有志於從事Unity開發工作的人員,同時也適合高等院校相關專業的學生和各類培訓班的學員閱讀參考。
圖書目錄
第 1章 Unity介紹
1.1 Unity簡介 1
1.2 Unity的歷史 2
1.3 Unity 2017中的重要特性 3
1.3.1 業界領先的多平台支持 3
1.3.2 VR/AR首選開發工具 4
1.3.3 Cinemachine攝像機系統 4
1.3.4 Timeline可視化工具 4
1.3.5 數字內容創建工具的工作流程改進對FBX的支持 5
1.3.6 Post-processing棧改進 5
1.3.7 粒子系統改進 5
1.3.8 全景360°/180°視頻 5
1.3.9 更新版的Crunch庫 5
1.3.10 光照改進 5
1.3.11 通過VR設備狀態事件獲得信息 6
1.3.12 輕鬆發布Android套用到中國小米平台 6
1.4 Unity開發案例介紹 6
1.4.1 Unity手機遊戲開發案例 6
1.4.2 Unity嚴肅遊戲開發案例 7
第 2章 Unity安裝與購買
2.1 Unity安裝 10
2.1.1 實踐操作01:在Windows作業系統下的安裝 10
2.1.2 實踐操作02:在macOS下的安裝 12
2.2 購買許可證 14
實踐操作03:線上購買Unity Plus加強版 15
第3章 Unity編輯器
3.1 實踐操作04:工程的創建 16
3.2 界面布局 16
3.2.1 導航視窗 16
3.2.2 界面布局 17
3.2.3 界面定製 18
3.3 工具列 18
3.3.1 Transform Tools(變換工具) 18
3.3.2 Transform Gizmo Tools(變換輔助工具) 21
3.3.3 Play(播放控制) 21
3.3.4 Layers(分層下拉列表) 21
3.3.5 Layout(布局下拉列表) 21
3.4 選單欄 21
3.4.1 File(檔案)選單 21
3.4.2 Edit(編輯)選單 22
3.4.3 Assets(資源)選單 23
3.4.4 GameObject(遊戲對象)選單 24
3.4.5 Component(組件)選單 25
3.4.6 Window(視窗)選單 26
3.4.7 Help(幫助)選單 27
3.5 常用工作視圖 28
3.5.1 Project(項目)視圖 28
3.5.2 Scene(場景)視圖 30
3.5.3 Game(遊戲)視圖 31
3.5.4 Inspector(檢視)視圖 32
3.5.5 Hierarchy(層級)視圖 33
3.5.6 Console(控制台)視圖 34
第4章 遊戲對象、組件和Prefabs
4.1 實踐操作05:創建遊戲對象和組件 35
4.2 常用遊戲對象 37
4.2.1 實踐操作06:內置的幾何體和空對象 37
4.2.2 Camera相機 38
4.2.3 Light(燈光) 39
4.2.4 UGUI 40
4.3 常用組件 40
4.3.1 Transform組件 40
4.3.2 Mesh組件 40
4.3.3 Physics組件 40
4.3.4 Particle System組件 41
4.3.5 Audio組件 41
4.3.6 Scripts組件 41
4.4 Prefabs(預設體) 41
4.4.1 實踐操作07:創建Prefabs 41
4.4.2 實例化Prefabs 43
4.4.3 實踐操作08:修改Prefabs 43
第5章 創建基本的3D遊戲場景
5.1 實踐操作09:創建3D遊戲場景 46
5.2 地形 47
5.2.1 實踐操作10:編輯地形 47
5.2.2 實踐操作11:添加樹木和植被 51
5.2.3 實踐操作12:添加水效果 53
5.2.4 地形設定參數詳解 54
5.3 實踐操作13:光源和陰影 56
5.4 角色控制 58
5.4.1 實踐操作14:創建第 一人稱控制器 58
5.4.2 實踐操作15:創建第三人稱控制器 59
5.5 靜態景物 61
5.5.1 實踐操作16:導入外部物體 61
5.5.2 實踐操作17:創建物理阻擋 62
5.6 環境和音效 63
5.6.1 實踐操作18:添加天空盒 63
5.6.2 實踐操作19:添加霧效 64
5.6.3 實踐操作20:添加音效 65
第6章 創建基本的2D遊戲場景
6.1 實踐操作21:創建2D遊戲場景 67
6.2 實踐操作22:創建工作層 68
6.3 導入圖片資源 68
6.4 創建Tilemap 69
實踐操作23:創建Tilemaps 70
6.5 創建靜態場景 71
6.5.1 創建靜態景物 71
實踐操作24:創建背景層 71
實踐操作25:創建前景層 74
6.5.2 層級排序 76
6.5.3 Outline Editor功能 76
6.5.4 2D的九宮格技術 77
6.6 實踐操作26:創建燈光 79
6.7 實踐操作27:2D角色控制 81
6.8 2D遊戲場景案例 83
第7章 資源的導入與導出流程
7.1 資源導入 85
7.1.1 外部資源場景工具介紹 85
7.1.2 Unity導入外部資源的方法 86
7.1.3 實踐操作28:3D模型、材質的導入 87
7.1.4 圖片資源的導入 92
7.1.5 3D動畫的導入 99
7.1.6 音頻資源的導入 99
7.1.7 視頻資源的導入 101
7.2 資源包(unitypackage)的使用 103
7.2.1 資源包的導入 104
7.2.2 實踐操作29:資源包的導出 104
7.3 Asset Store的介紹和使用 105
7.3.1 Asset Store簡介 105
7.3.2 實踐操作30:Asset Store的使用 106
第8章 3D數學基礎
8.1 3D坐標系 107
8.1.1 全局坐標系 107
8.1.2 局部坐標系 108
8.1.3 相機坐標系 109
8.1.4 螢幕坐標系 109
8.2 向量 109
8.2.1 向量的運算 109
8.2.2 Vector3類 110
實踐操作31:計算兩物體間的距離 111
實踐操作32:緩動效果 112
8.3 矩陣 113
8.4 齊次坐標 113
8.5 四元數 114
實踐操作33:通過四元數控制對象旋轉 116
8.6 坐標轉換原理 117
8.6.1 世界坐標與局部坐標的轉換 117
實踐操作34:改變全局和局部坐標 117
8.6.2 世界坐標與螢幕坐標的轉換 119
實踐操作35:設定世界坐標 119
第9章 Unity腳本語言
9.1 Unity腳本語言 122
9.2 創建並運行腳本 122
9.2.1 實踐操作36:創建腳本 122
9.2.2 MonoDevelop編輯器 123
9.2.3 必然事件 124
實踐操作37:使用必然事件 124
9.3 C#基本語法 126
9.3.1 變數和常量 126
9.3.2 運算符和表達式 126
9.3.3 語句和函式 128
實踐操作38:使用語句 128
9.3.4 訪問修飾符 131
9.3.5 數組、鍊表和字典 132
實踐操作39:使用數組 132
實踐操作40:使用鍊表 134
9.3.6 代碼注釋 138
9.3.7 C#腳本 139
9.4 訪問遊戲對象和組件 140
9.4.1 MonoBehaviour 類 140
9.4.2 訪問遊戲對象 140
9.4.3 訪問組件 141
實踐操作41:訪問組件或遊戲對象 143
9.5 常用腳本API 144
9.5.1 Transform類 144
實踐操作42:使用Transform組件控制遊戲對象 145
9.5.2 Time類 146
9.5.3 Random類 147
9.5.4 Mathf類 147
實踐操作43:使用Mathf.SmoothDamp函式
製作相機的緩衝跟蹤效果 148
9.5.5 Coroutine協同程式 149
實踐操作44:使用協同程式 150
9.6 腳本生命周期 151
第 10章 信息輸入管理
10.1 Input Manager 153
10.2 滑鼠輸入 155
實踐操作45:滑鼠輸入的操作 155
10.3 鍵盤輸入 157
實踐操作46:鍵盤輸入的操作 158
10.4 遊戲外設輸入 159
實踐操作47:遊戲外設輸入的操作 159
10.5 移動設備輸入 160
實踐操作48:移動設備輸入的操作 161
10.6 自定義輸入 164
第 11章 物理系統
11.1 概述 166
11.2 物理系統相關組件 166
11.2.1 剛體組件 167
11.2.2 角色控制器 168
11.2.3 碰撞體組件 169
11.2.4 物理材質 173
11.2.5 布料組件 174
11.2.6 關節組件 179
11.2.7 力場組件 185
11.3 可視化物理調試 185
第 12章 粒子系統
12.1 什麼是粒子系統 188
12.2 在Unity中使用粒子系統 189
12.3 高級套用技巧 191
實踐操作49:學習使用標準資源包里的粒子特效 191
實踐操作50:控制爆炸粒子 191
實踐操作51:控制粒子的大小 193
12.4 參數詳解 196
第 13章 動畫系統
13.1 概述 212
13.2 Unity動畫相關組件 213
13.2.1 Animator和Animator Controller 213
13.2.2 Animation動畫編輯器 221
13.3 外部動畫資源的準備和導入 223
13.3.1 獲取人形格線模型 223
13.3.2 導入動畫 224
13.3.3 動畫分解 224
13.3.4 循環播放卡通片段 225
13.4 人形角色動畫 226
13.4.1 創建Avatar 226
13.4.2 配置Avatar 226
13.4.3 設定Muscle參數 228
13.4.4 Avatar Mask 228
13.4.5 人形動畫的重定向 229
實踐操作52:將第三人稱控制動畫重定向到其他角色 229
13.4.6 逆向運動學功能 231
實踐操作53:逆向運動學套用 231
13.5 動畫混合 233
13.5.1 混合樹 233
13.5.2 1D混合 234
13.5.3 2D混合 236
13.5.4 直接混合 238
第 14章 Timeline
14.1 Timeline概述 239
14.2 Timeline工作流程 242
14.2.1 創建Timeline資源和Timeline實例 242
14.2.2 用無限剪輯錄製基本動畫 243
14.2.3 將無限剪輯轉換為卡通片段 246
14.2.4 創建人形動畫 246
14.3 Timeline編輯視窗 249
14.3.1 Timeline預覽和Timeline選擇器 251
14.3.2 Timeline播放控制項 251
14.3.3 軌道列表 252
14.3.4 剪輯視圖 257
14.3.5 曲線視圖 264
14.3.6 Timeline設定 268
14.4 Playable Director組件 269
14.5 Cinemachine Camera 系統 270
14.5.1 下載並導入資源包 270
14.5.2 Cinemachine Camera主要的組件 271
實踐操作54:使用Cinemachine Camera 271
14.6 綜合案例:Timeline
和Cinemachine Camera的綜合使用 274
第 15章 UGUI
15.1 概述 280
15.2 UGUI之Canvas畫布 280
15.2.1 Canvas 280
15.2.2 Canvas Group 281
15.2.3 元素繪製順序 281
15.3 UGUI之EventSystem對象 282
15.3.1 Event System組件 282
15.3.2 Standalone Input Module組件 282
15.4 UGUI之基本布局 283
15.4.1 矩形工具 283
15.4.2 Rect Transform矩形變換 283
15.4.3 Anchors錨點 284
15.4.4 Pivot軸心點 285
15.4.5 補充 285
15.5 UGUI之Text文本 285
15.5.1 Text介紹 285
15.5.2 Rich Text富文本 286
15.6 UGUI之Image圖像 286
15.7 UGUI之Raw Image原始圖像 287
15.8 UGUI之Mask遮罩 288
15.9 UGUI之過渡選項和導航選項 288
15.9.1 Transition過渡選項 288
15.9.2 Navigation導航選項 289
15.10 UGUI之Button按鈕 290
15.10.1 Button介紹 290
15.10.2 實踐操作55:Button單擊事件綁定 291
15.11 UGUI之Toggle開關 294
15.11.1 Toggle介紹 294
15.11.2 實踐操作56:Toggle事件綁定 295
15.12 UGUI之Slider滑動條 295
15.12.1 Slider介紹 295
15.12.2 實踐操作57:Slider事件綁定 296
15.13 UGUI之Scrollbar滾動條 297
15.13.1 Scrollbar介紹 297
15.13.2 Scrollbar事件綁定 298
15.14 UGUI之Dropdown下拉列表 298
15.14.1 Dropdown介紹 298
15.14.2 Dropdown事件綁定 300
15.14.3 實踐操作58:Dropdown其他操作 300
15.15 UGUI之Input Field輸入欄 301
15.15.1 Input Field介紹 301
15.15.2 Input Field事件綁定 302
15.16 UGUI之Scroll View滾動視圖 302
15.16.1 Scroll View介紹 302
15.16.2 Scroll View事件綁定 303
15.17 UGUI之自動布局組件 303
15.17.1 Layout Element布局元素 303
15.17.2 Content Size Fitter內容尺寸裁切 304
15.17.3 Aspect Ratio Fitter長寬比例裁切 304
15.17.4 Horizontal Layout Group水平布局組 305
15.17.5 Vertical Layout Group垂直布局組 305
15.17.6 Grid Layout Group格線布局組 306
第 16章 音效和視頻
16.1 音效系統 307
16.1.1 概述 307
16.1.2 常用組件 308
16.1.3 Audio Mixer音頻混合 310
16.1.4 Audio Filters音頻過濾 321
16.1.5 Audio Effects音頻效果 325
16.1.6 Microphone麥克風 325
16.2 視頻播放器 326
16.2.1 概述 326
16.2.2 Video Player組件 327
16.2.3 視頻剪輯 328
16.2.4 視頻透明度支持 328
16.2.5 全景視頻 329
實踐操作59:全景視頻之海上衝浪 329
第 17章 全局光照
17.1 概述 333
17.1.1 Enlighten 333
17.1.2 Progressive Lightmapper 333
17.1.3 Lightmap seam stitching 334
17.2 實踐操作60:烘焙光照用法示例 335
17.3 系統參數詳解 338
17.3.1 FBX模型導入設定 338
17.3.2 Reflection Probe反射探針 338
17.3.3 Light Probe Group光照探針組件 341
17.3.4 Lighting 視窗 341
17.3.5 Light Explorer光探測器 345
第 18章 導航格線尋路
18.1 Unity的導航尋路系統 346
18.2 實踐操作61:創建一個導航格線 347
18.3 系統參數詳解 351
18.3.1 Navigation視窗 351
18.3.2 Nav Mesh Agent 352
18.3.3 Off Mesh Link 353
18.3.4 Nav Mesh Obstacle 353
18.4 綜合案例:導航格線尋路的高級技巧 354
18.4.1 使用Off Mesh Link組件 354
18.4.2 為格線分層 355
18.4.3 動態更改可行進層 356
18.4.4 使用Nav Mesh Obstacle組件 358
第 19章 遮擋剔除
19.1 概述 359
19.2 參數詳解 360
19.2.1 Occlusion視窗 360
19.2.2 Occlusion Area組件 362
19.2.3 Occlusion Portal組件 363
19.3 綜合案例:遮擋剔除的使用 363
第 20章 後期螢幕渲染特效
20.1 概述 365
20.2 參數詳解 367
20.2.1 Fog(霧效) 367
20.2.2 Anti-aliasing(抗鋸齒) 368
20.2.3 Ambient Occlusion(環境光遮罩) 369
20.2.4 Screen Space Reflection(螢幕空間反射) 370
20.2.5 Depth of Field(景深) 371
20.2.6 Motion Blur(運動模糊) 372
20.2.7 Eye Adaptation(眼部適應) 373
20.2.8 Bloom(泛光) 374
20.2.9 Color Grading(顏色分級) 375
20.2.10 User Lut 378
20.2.11 Chromatic Aberration(色差) 379
20.2.12 Grain(顆粒) 379
20.2.13 Vignette(漸暈) 380
20.2.14 Dithering(抖動) 381
20.2.15 Debug Views(調試視圖) 381
20.2.16 Monitors(監視器) 384
第 21章 Shader開發
21.1 Shader概述 386
21.2 內建Shader介紹 387
21.2.1 內建著色器 387
實踐操作62:使用內建著色器 388
21.2.2 內建標準著色器 389
實踐操作63:使用標準著色器 392
21.3 Shader的創建 393
21.4 ShaderLab基礎語法 394
21.4.1 Properties屬性 396
21.4.2 SubShader子著色器視圖 398
21.4.3 Fallback備用著色器 399
21.4.4 Category(分類) 399
21.5 自定義Shader 400
21.5.1 Fixed Function Shaders(固定功能管線著色器) 400
21.5.2 Surface Shaders(表面著色器) 401
21.5.3 Vertex and Fragment Shaders(頂點片段著色器) 402
21.6 綜合案例:著色器編寫實例 404
21.6.1 表面著色器 404
21.6.2 頂點片段著色器 406
第 22章 AssetBundle工作流程
22.1 AssetBundle的創建 409
22.1.1 AssetBundle的UI 409
22.1.2 BuildPipeline BuildAsset-Bundles 410
實踐操作64:AssetBundle的創建 411
22.1.3 Unity處理Assets之間的依賴 412
22.2 AssetBundle的下載 414
22.3 AssetBundle的載入和卸載 415
22.3.1 載入AssetBundle 415
22.3.2 從AssetBundle中載入Assets 417
22.3.3 AssetBundle Variant的使用 418
22.3.4 卸載AssetBundle 419
22.4 AssetBundle的記憶體管理 419
22.4.1 下載和載入AssetBundle時記憶體的影響 419
22.4.2 AssetBundle及Asset的卸載 420
22.5 AssetBundle工具 420
22.5.1 Configure的使用 421
22.5.2 Build的使用 423
第 23章 多人遊戲和聯網
23.1 授權伺服器 425
23.2 非授權伺服器 426
23.3 Hight Level API 426
23.4 Transport Layer API 427
23.5 Unity的多人遊戲 429
23.5.1 集成多人遊戲服務 430
實踐操作65:使用HUD進行集成 430
23.5.2 使用Hight Level API進行集成 432
23.5.3 使用NetworkTransport進行集成 432
23.6 Unity網路組件介紹 439
23.6.1 Network Animator 439
23.6.2 Network Discovery 439
23.6.3 Network Identity 440
23.6.4 Network Lobby Manager 441
23.6.5 Network Lobby Player 442
23.6.6 Network Manager 443
23.6.7 Network Manager HUD 445
23.6.8 Network Proximity Checker 446
23.6.9 Network Start Position 446
23.6.10 Network Transform 446
23.6.11 Network Transform Child 447
23.6.12 Network Transform Visualizer 448
23.7 Unity的網路請求 449
23.7.1 常用操作:使用HLAPI 449
23.7.2 高級操作:使用LLAPI 453
23.8 綜合案例:多人遊戲實戰 461
23.9 Unity服務 466
23.9.1 相關資源 466
23.9.2 Unity Ads廣告 467
23.9.3 Unity Game Analytics遊戲分析 467
23.9.4 Everyplay視頻錄製 468
23.9.5 Unity Cloud Build雲構建 469
23.9.6 Unity Collaborate協同服務 469
第 24章 編輯器擴展
24.1 編輯器腳本 470
24.2 實踐操作66:創建編輯器視窗 470
24.3 自定義Inspector視圖 473
24.4 實踐操作67:自定義Scene視圖 474
24.5 第三方編輯器外掛程式 475
第 25章 腳本調試與最佳化
25.1 實踐操作68:腳本調試 476
25.2 Profiler性能分析器 478
25.2.1 Profiler的使用 478
25.2.2 iOS設備啟用遠程分析 481
25.2.3 Android設備啟用遠程分析 482
25.3 Log Files 482
25.4 腳本最佳化 484
25.4.1 各個平台通用的最佳化方案 484
25.4.2 移動設備的最佳化 485
第 26章 跨平台發布
26.1 Windows平台發布 487
26.1.1 實踐操作69:Windows平台發布步驟 487
26.1.2 Player Settings參數詳解 487
26.2 Android平台發布 493
26.2.1 實踐操作70:Java SDK的環境配置 493
26.2.2 Android SDK的安裝 494
26.2.3 實踐操作71:Android平台發布步驟 494
26.2.4 Player Settings參數詳解 495
26.3 iOS平台發布 500
26.3.1 實踐操作72:iOS平台發布前的準備工作 500
26.3.2 實踐操作73:項目工程的輸出和發布 501
26.3.3 Player Settings參數詳解 502
26.4 WebGL平台發布 506
26.4.1 實踐操作74:WebGL平台發布步驟 506
26.4.2 Player Settings參數詳解 507
26.5 Facebook平台發布 510
26.5.1 實踐操作75:Facebook平台發布步驟 510
26.5.2 Player Settings參數詳解 511
第 27章 案例分析之Tanks
27.1 案例工程檔案下載 512
27.2 場景設定 513
27.2.1 場景碰撞區域設定 513
27.2.2 坦克初始位置 514
27.3 遊戲控制 514
27.4 後期螢幕渲染特效 515
27.4.1 Bloom 515
27.4.2 Color Grading 515
27.4.3 Chromatic Aberration 516
27.4.4 Vignette 516
27.5 靜態批處理 516
27.6 遊戲管理 517
27.6.1 遊戲參數設定 517
27.6.2 遊戲流程控制邏輯 518
27.7 坦克控制 521
27.7.1 坦克運動控制的實現 521
27.7.2 坦克血條的實現 524
27.7.3 坦克射擊的實現 526
27.8 相機控制 530
第 28章 Unity 2018新特性
28.1 項目模板功能 533
28.1.1 3D附帶額外設定 534
28.1.2 高清晰渲染管線 534
28.1.3 輕量級渲染管線 535
28.1.4 輕量級VR渲染管線 535
28.2 Package Manager 536
實踐操作76:Package Manager的相關操作 537
28.3 著色器視圖Shader Graph 538
28.3.1 安裝Shader Graph 539
實踐操作77:安裝Shader Graph 539
28.3.2 Shader Graph功能介紹 540
28.4 可程式渲染管線SRP 540
28.4.1 SRP批處理器加速CPU渲染 541
28.4.2 可程式著色器變體移除 541
28.4.3 輕量級渲染管線(預覽版) 541
28.4.4 高清晰渲染管線(預覽版) 542
28.5 特效編輯器VFX Graph 543
實踐操作78:Visual Effect Graph的安裝 543
作者簡介
劉向群,
Unity 官方認證價值專家(UVP)、Unity UUG 福州負 責人、工業與信息化部 VR 認證講師。畢業於西安通信學院 ,計算機套用專業。擁有十多年 VR/AR 從業經驗,曾參與《網上世博會》《數字奧運》《網 易 3D 家具》等 VR 項目實施。北京犀牛數字互動科技 有限公司創始人,中國虛擬現實產業聯盟理事,中國 虛擬現實與可視化聯盟理事,中國計算機學會 AC 學術 委員。組織並參與出版書籍:《VR/AR/MR 開發實戰》《虛擬現實:從夢想到現實》《Unity 4.X 從入門到精通》 《Unity 5.X 從入門到精通》。
吳彬,
畢業於西安歐亞學院 ,計算機信息管 理專業。2004 年起專注於虛擬現實領域,資深虛擬現 實從業人員。《Unity 4.X 從入門到精通》《Unity 5.X 從入門到精通》的作者之一。精通 3ds MAX、Maya、 Unity 等 3D 軟體。具有極其深厚的 VR 技術功底,開 發過《數字奧運》 《第三星球》等多個大型虛擬現實 項目。