3dwoo大學簡體電腦書店
Unity 3D游戲開發(第3版)
( 簡體 字)
作者:宣雨松類別:1. -> 多媒體 -> 遊戲引擎 -> Unity
出版社:人民郵電出版社Unity 3D游戲開發(第3版) 3dWoo書號: 56313
詢問書籍請說出此書號!
有庫存
NT售價: 650
出版日:10/1/2023
頁數:778
光碟數:0
站長推薦:
印刷:黑白印刷語系: ( 簡體 字 )
ISBN:9787115624680 加入購物車加到我的最愛 (請先登入會員)
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證, 繁體書的下載亦請直接連絡出版社)
第 一部分 基礎篇
第 1章 基礎知識 2
1.1 Unity簡介 2
1.2 跨平臺 2
1.3 協作開發 3
1.4 Unity版本 4
1.5 Package Manager 5
1.6 示例項目與發布 7
1.7 Unity服務 8
1.8 小結 9
第 2章 編輯器的結構 10
2.1 Unity Hub 10
2.2 編輯器布局 11
2.3 Project視圖 12
2.4 Hierarchy視圖 13
2.5 Inspector視圖 14
2.6 Scene視圖 15
2.7 Game視圖 16
2.8 導航欄視圖 17
2.9 小結 17
第3章 游戲腳本 18
3.1 C#運行時 18
3.2 C#與引擎交互 22
3.3 游戲對象 27
3.4 游戲組件 29
3.4.1 Transform(變換)組件 29
3.4.2 Mesh Filter(網格過濾器)組件 30
3.4.3 Mesh Renderer(網格渲染)組件 31
3.4.4 Skinned Mesh Renderer(蒙皮網格渲染)組件 32
3.5 游戲腳本 35
3.6 腳本的生命周期 35
3.6.1 初始化和銷毀 37
3.6.2 二次初始化 38
3.6.3 固定更新 39
3.6.4 內置協程回調 43
3.6.5 鼠標事件 45
3.6.6 腳本邏輯更新 46
3.6.7 場景渲染 47
3.6.8 編輯器UI 更新 48
3.7 腳本的管理 50
3.7.1 腳本的執行順序 50
3.7.2 多腳本優化 51
3.8 腳本序列化 52
3.8.1 查看數據 53
3.8.2 序列化數據標簽 54
3.8.3 SerializedObject 55
3.8.4 監聽修改事件 56
3.8.5 序列化/反序列化監聽 58
3.8.6 序列化嵌套 60
3.8.7 序列化引用 61
3.8.8 序列化繼承 62
3.8.9 ScriptableObject 63
3.9 腳本屬性 65
3.9.1 序列化屬性 65
3.9.2 Header屬性 66
3.9.3 編輯模式下執行腳本 66
3.9.4 枚舉序列化別名 67
3.9.5 必須包含的組件 68
3.9.6 其他UI擴展面板 68
3.9.7 可選擇屬性 69
3.9.8 自定義屬性 69
3.10 協程任務 70
3.10.1 異步代碼流程 71
3.10.2 當前幀最后執行 71
3.10.3 定時器 73
3.10.4 CustomYieldInstruction 75
3.10.5 Awaitable 76
3.11 通過腳本操作對象和組件 78
3.11.1 對象的創建與刪除 78
3.11.2 對象層級排序 80
3.11.3 對象子節點的獲取 80
3.11.4 多場景根節點 81
3.11.5 腳本的添加與刪除 82
3.11.6 DontDestroyOnLoad 83
3.12 調試 83
3.13 小結 85
第4章 UGUI 86
4.1 游戲界面 86
4.1.1 Text組件 86
4.1.2 富文本 89
4.1.3 描邊和陰影 91
4.1.4 動態字體 92
4.1.5 字體花屏 93
4.1.6 Text Mesh Pro 94
4.1.7 SDF字體 97
4.1.8 圖文混排 99
4.1.9 樣式 101
4.1.10 文字fallback 103
4.1.11 點擊事件 104
4.1.12 Image組件 105
4.1.13 Raw Image組件 107
4.1.14 Button組件 109
4.1.15 Toggle組件 110
4.1.16 Scroll View組件 111
4.1.17 其他組件 113
4.2 界面布局 114
4.2.1 Rect Transform組件 114
4.2.2 拉伸 117
4.2.3 自動布局 118
4.2.4 文本自適應 120
4.2.5 Layout Element組件 121
4.2.6 Layout Group組件 122
4.2.7 Content Size Fitter組件 123
4.3 Canvas組件 126
4.3.1 UI攝像機 126
4.3.2 3D界面 128
4.3.3 自適應UI 130
4.3.4 Canvas與3D排序 133
4.3.5 裁剪 135
4.3.6 裁剪粒子 136
4.4 Atlas 137
4.4.1 創建Atlas 138
4.4.2 讀取Atlas 139
4.4.3 Variant 140
4.4.4 監聽加載事件 140
4.4.5 多圖集管理 141
4.5 事件系統 141
4.5.1 Graphic Raycaster組件 142
4.5.2 UI事件 143
4.5.3 UI事件管理 144
4.5.4 UnityAction和UnityEvent 146
4.5.5 C#事件系統 147
4.5.6 3D事件 148
4.5.7 K幀動畫 149
4.5.8 使用Scroll Rect組件制作游戲搖桿 150
4.5.9 點擊區域優化 151
4.5.10 顯示幀率 152
4.5.11 查看UGUI源代碼 153
4.6 小結 153
第5章 UI Toolkit 154
5.1 UI Toolkit簡介 154
5.2 UI Builder編輯器 154
5.2.1 StyleSheets視圖 156
5.2.2 Hierarchy視圖 159
5.2.3 Library視圖 161
5.2.4 Viewport視圖 162
5.2.5 Inspector視圖 64
5.3 UI組件 180
5.3.1 Text組件 181
5.3.2 Visual Element組件 183
5.3.3 其他UI組件 184
5.3.4 基礎容器 185
5.3.5 ScrollView組件 186
5.3.6 ListView組件 188
5.3.7 ListView事件 190
5.3.8 TreeView組件 191
5.3.9 GroupBox組件 192
5.3.10 控制組件 192
5.3.11 加載與嵌套 195
5.3.12 自適應UI 196
5.3.13 動態圖集 198
5.3.14 自定義UI組件 199
5.4 事件系統 200
5.4.1 點擊事件 200
5.4.2 焦點事件 201
5.4.3 鍵盤事件 202
5.4.4 拖動事件 202
5.5 進階技巧 203
5.5.1 3D與2D坐標轉換 203
5.5.2 覆蓋樣式 204
5.5.3 多樣式管理 206
5.5.4 調試 207
5.5.5 編輯器窗口面板 208
5.5.6 編輯器腳本面板 209
5.5.7 編輯器組合面板 210
5.5.8 布局與裁剪 211
5.5.9 與UGUI混合使用 213
5.5.10 UI動畫 213
5.6 UI Toolkit渲染 214
5.6.1 IMGUI 214
5.6.2 UGUI 214
5.6.3 圖集 214
5.6.4 UI Toolkit與UGUI的比較 216
5.7 UI Toolk學習資料 217
5.8 小結 218
第6章 2D游戲開發 219
6.1 Sprite Renderer組件 220
6.1.1 渲染原理 222
6.1.2 渲染排序 224
6.1.3 裁剪 226
6.1.4 2D幀動畫 227
6.1.5 腳本播放動畫 231
6.1.6 2D骨骼動畫 232
6.1.7 IK反向運動 238
6.1.8 精靈資源庫 239
6.2 Tile地圖 241
6.2.1 創建Tile 242
6.2.2 創建地圖 243
6.2.3 編輯Tile 245
6.2.4 Tile排序 247
6.2.5 擴展筆刷 248
6.2.6 擴展Tile 251
6.2.7 更新Tile 252
6.2.8 Tile動畫 253
6.3 2D物理系統 254
6.3.1 Collider 2D組件 254
6.3.2 Rigidbody 2D組件 255
6.3.3 碰撞事件 257
6.3.4 碰撞方向 259
6.3.5 觸發器監聽 261
6.3.6 復合碰撞體 262
6.3.7 自定義碰撞體 263
6.3.8 Effectors 2D組件 264
6.3.9 關節 264
6.3.10 物理材質和恒定力 264
6.3.11 計算區域 265
6.4 像素風 265
6.5 精靈形狀 267
6.6 精靈編輯器 268
6.7 小結 270
第7章 3D游戲開發 271
7.1 Renderer 271
7.1.1 Mesh Renderer(網格渲染器) 271
7.1.2 Skinned Mesh Renderer(蒙皮網格渲染器) 273
7.1.3 Particle System(粒子系統) 275
7.1.4 Trail Renderer(拖尾渲染器) 276
7.1.5 Line Renderer(線渲染器) 276
7.1.6 Terrain(地形) 277
7.2 游戲對象和資源 278
7.2.1 靜態對象 278
7.2.2 標記 279
7.2.3 層 280
7.2.4 Prefab 280
7.2.5 Prefab嵌套 282
7.2.6 Prefab和游戲對象 285
7.2.7 實例化 286
7.2.8 游戲資源 287
7.2.9 場景 289
7.2.10 場景模板 291
7.3 動畫系統 293
7.3.1 動畫文件 293
7.3.2 制作動畫 296
7.3.3 動畫事件 297
7.3.4 骨骼動畫優化 298
7.3.5 播放動畫 300
7.3.6 切換動畫 301
7.3.7 動畫混合 302
7.3.8 老版動畫 304
7.3.9 Simple Animation組件 305
7.3.10 控制動畫進度 307
7.3.11 特殊動畫行為 308
7.3.12 Playable組件 309
7.3.13 使用Playable自定義腳本 312
7.3.14 模型換裝 313
7.4 3D物理系統 316
7.4.1 角色控制器 316
7.4.2 碰撞體 319
7.4.3 Rigidbody組件 321
7.4.4 碰撞事件 321
7.4.5 布娃娃系統 323
7.4.6 布料系統 324
7.4.7 其他 325
7.5 輸入系統 325
7.5.1 實體輸入事件 326
7.5.2 虛擬輸入事件 327
7.5.3 鼠標位置 328
7.5.4 點選模型 330
7.5.5 通過點擊控制移動 332
7.5.6 射線 333
7.6 Transform組件 334
7.6.1 控制角色移動 335
7.6.2 攝像機跟隨 336
7.6.3 插值移動 337
7.6.4 約束條件 338
7.7 小結 339
第8章 靜態對象 340
8.1 光照貼圖 341
8.1.1 光源 341
8.1.2 開始烘焙 342
8.1.3 烘焙結果在不同平臺上的差異 346
8.1.4 烘焙貼圖UV 347
8.1.5 光照探針 348
8.1.6 運行時更換烘焙貼圖 349
8.1.7 復制烘焙信息 350
8.1.8 復制工具 351
8.2 反射探針 352
8.3 遮擋剔除 354
8.3.1 遮擋關系 354
8.3.2 遮擋與被遮擋事件 356
8.3.3 動態剔除 356
8.3.4 遮擋剔除的原理 356
8.3.5 裁剪組 357
8.4 靜態合批 358
8.4.1 設置靜態合批 358
8.4.2 腳本靜態合批 360
8.4.3 動態合批 361
8.5 導航網格 361
8.5.1 設置尋路 362
8.5.2 動態阻擋 364
8.5.3 連接兩點 365
8.5.4 連接兩個區域 366
8.5.5 烘焙修改器 366
8.5.6 運行時烘焙 367
8.5.7 獲取尋路路徑 368
8.5.8 導出導航網格信息 369
8.6 小結 372
第9章 持久化數據 373
9.1 Excel 373
9.1.1 EPPlus 374
9.1.2 讀取Excel文件 374
9.1.3 寫入Excel文件 376
9.2 SQLite 377
9.2.1 創建數據庫 378
9.2.2 跨平臺讀取數據庫 379
9.3 JSON 382
9.3.1 JsonUtility 382
9.3.2 JSON支持字典 384
9.3.3 Newtonsoft Json 385
9.4 文件的讀取與寫入 386
9.4.1 PlayerPrefs 386
9.4.2 EditorPrefs 387
9.4.3 用PlayerPrefs保存復雜的數據結構 388
9.4.4 PlayerPrefs版本升級 389
9.4.5 文件讀寫 389
9.4.6 文件流 390
9.4.7 打包后讀寫文本 392
9.4.8 PersistentDataPath目錄 393
9.5 XML 393
9.5.1 創建XML字符串 393
9.5.2 讀取與修改 394
9.5.3 XML文件 395
9.5.4 XML與JSON的轉換 397
9.6 YAML 397
9.6.1 YamlDotNet 398
9.6.2 序列化和反序列化 398
9.7 生成代碼 400
9.7.1 把數據從Excel表導出到數據庫 400
9.7.2 運行時讀取數據 402
9.7.3 RazorEngine 403
9.7.4 生成代碼的條件 404
9.7.5 模板文件 405
9.8 小結 406
第 10章 多媒體 407
10.1 音頻 407
10.1.1 音頻文件 407
10.1.2 Audio Source 408
10.1.3 3D音頻 410
10.1.4 代碼控制播放 411
10.1.5 AudioMixer 412
10.1.6 混音區 414
10.1.7 麥克風 415
10.1.8 聲音進度 416
10.2 視頻 417
10.2.1 視頻文件 417
10.2.2 視頻渲染模式 419
10.2.3 視頻自適應 420
10.2.4 UI覆蓋在視頻之上 421
10.2.5 視頻渲染在材質上 422
10.2.6 視頻渲染在紋理上 422
10.2.7 播放網絡視頻 423
10.2.8 自定義視頻顯示 424
10.2.9 視頻進度 425
10.2.10 下載視頻 425
10.2.11 全景視頻 426
10.3 小結 426
第 11章 Netcode與網絡編程 427
11.1 UnityWebRequest 427
11.1.1 下載文件和上傳文件 428
11.1.2 下載進度與異常 429
11.1.3 驗證文件 431
11.1.4 DownloadHandlerScript 431
11.1.5 控制下載速度 433
11.2 Socket 436
11.2.1 拼接包 439
11.2.2 Protocol Buffer 440
11.3 Netcode 442
11.3.1 托管服務器 443
11.3.2 UNet與Netcode的區別 445
11.3.3 前后端同步 446
11.3.4 軟連接 448
11.3.5 同步坐標 450
11.3.6 服務器RPC 452
11.3.7 客戶端RPC 454
11.3.8 網絡變量 457
11.3.9 網絡場景 459
11.3.10 網絡底層消息 460
11.3.11 FastBufferWriter與FastBufferReader 463
11.3.12 網絡連接事件 464
11.3.13 網絡對象 465
11.3.14 隱藏與顯示 467
11.3.15 前后端時間 468
11.3.16 網絡腳本內置方法 469
11.3.17 前后端打包 469
11.3.18 密碼 472
11.4 小結 474
第二部分 進階篇
第 12章 渲染管線 476
12.1 SRP 476
12.1.1 SRP Core 479
12.1.2 安裝與配置 480
12.1.3 攝像機組件工具 482
12.1.4 Look Dev 483
12.1.5 Render Graph Viewer 484
12.1.6 對URP的展望 485
12.2 URP 489
12.2.1 URP調試與修改 489
12.2.2 URP與內置渲染管線對比 491
12.2.3 升級著色器 503
12.2.4 LightMode 509
12.2.5 Shader Graph 510
12.2.6 Renderer Pipeline Asset 512
12.2.7 Renderer Pipeline Asset Data 516
12.2.8 URP Global Settings 519
12.2.9 URP Renderer Feature 520
12.3 SRP Batch 527
12.3.1 不透明物體繪制 527
12.3.2 半透明物體繪制 528
12.3.3 Early-Z 529
12.3.4 Alpha Test 529
12.3.5 Alpha Blend 530
12.3.6 Set Pass Call與Draw Call 531
12.3.7 SRP Batch原理 534
12.3.8 SRP Batch使用 536
12.4 渲染技術 538
12.4.1 Blinn-Phong光照計算 538
12.4.2 PBR光照計算 540
12.4.3 陰影 543
12.4.4 渲染數據傳遞 546
12.4.5 SRP流程 549
12.4.6 GPU渲染管線 550
12.4.7 SRP裁剪 553
12.4.8 前向渲染流程 554
12.4.9 多攝像機與FinalBlit 557
12.4.10 ScriptableRenderPass 560
12.5 自定義渲染管線 562
12.5.1 參與渲染的對象 562
12.5.2 MVP矩陣計算 563
12.5.3 Render Objects 566
12.5.4 Rendering Layer Mask 568
12.5.5 自定義Render Feature 569
12.5.6 裁剪與層 571
12.5.7 后處理與自定義 573
12.5.8 UI部分模糊 576
12.5.9 降低分辨率不包含UI 576
12.6 小結 578
第 13章 DOTS 1.0 579
13.1 DOTS的組成 579
13.1.1 ECS簡介 581
13.1.2 Job System簡介 583
13.1.3 Burst Compiler簡介 584
13.1.4 安裝 585
13.2 游戲對象轉到ECS 585
13.2.1 傳統的對象與組件 585
13.2.2 Entity(實體)586
13.2.3 Archetype(原型)587
13.2.4 Component(組件)589
13.2.5 System(系統)591
13.3 實體組件 592
13.3.1 非托管組件 592
13.3.2 托管組件 593
13.3.3 共享組件 593
13.3.4 清理組件 594
13.3.5 標記組件 595
13.3.6 動態緩沖組件 595
13.3.7 Chunk組件 596
13.3.8 啟動組件 598
13.4 系統 599
13.4.1 系統組件 600
13.4.2 系統分組與排序 601
13.4.3 系統遍歷 602
13.4.4 系統查詢 603
13.4.5 寫組與版本號 604
13.4.6 SystemAPI.Query 606
13.5 Job 607
13.5.1 線程與同步 608
13.5.2 Job的種類 610
13.5.3 Entity Command Buffers實體緩沖 611
13.6 Burst 612
13.6.1 啟動Burst 613
13.6.2 高性能C# 615
13.6.3 Unity.Mathematics數學庫 617
13.7 渲染 619
13.7.1 自定義材質 620
13.7.2 更換模型材質 621
13.7.3 修改材質屬性 622
13.7.4 GPU Instancing 624
13.7.5 BatchRendererGroup 627
13.7.6 Aspect包裝器 629
13.7.7 調試 630
13.8 小結 634
第 14章 擴展編輯器 635
14.1 擴展Project視圖 635
14.1.1 擴展右鍵菜單 635
14.1.2 創建腳本模板 637
14.1.3 擴展布局 639
14.1.4 監聽資源導入 640
14.1.5 監聽資源修改事件 641
14.1.6 自定義資源導入類型 642
14.2 擴展Hierarchy視圖 643
14.2.1 擴展菜單 643
14.2.2 擴展布局 644
14.2.3 自動選擇游戲對象 645
14.3 擴展Inspector視圖 645
14.3.1 擴展原生組件 646
14.3.2 擴展繼承組件 646
14.3.3 限制組件編輯 648
14.3.4 Context菜單 649
14.4 擴展Scene視圖 650
14.4.1 工具欄擴展 650
14.4.2 輔助元素 651
14.4.3 輔助UI 652
14.4.4 常駐輔助UI 653
14.5 擴展Game視圖 654
14.6 導航欄擴展 654
14.6.1 自定義菜單 655
14.6.2 菜單項自動執行 655
14.6.3 導航條 656
14.6.4 標題欄擴展 657
14.6.5 默認面板 658
14.7 查看源代碼 658
14.8 小結 659
第 15章 資源管理 660
15.1 編輯器模式 660
15.1.1 游戲資源 660
15.1.2 加載資源 661
15.1.3 卸載資源 663
15.1.4 創建與修改資源 663
15.1.5 創建與修改游戲對象 664
15.2 運行模式 665
15.2.1 參與打包的資源 665
15.2.2 Resources 666
15.2.3 通過腳本計算依賴 667
15.2.4 StreamingAssets 668
15.2.5 場景資源 668
15.3 AssetBundle 668
15.3.1 設置AB 669
15.3.2 設置依賴 670
15.3.3 純腳本打包 671
15.3.4 差異打包 672
15.3.5 AB壓縮格式 672
15.3.6 加載AB 673
15.3.7 內存與卸載 674
15.3.8 場景AB 675
15.3.9 CDN下載流程 675
15.3.10 加載流程 676
15.3.11 多進程AB構建 676
15.4 代碼編譯 677
15.4.1 Plugins 677
15.4.2 Assembly 677
15.4.3 Editor 678
15.4.4 IL2CPP 678
15.4.5 AB中的腳本 679
15.4.6 熱更新代碼 680
15.5 Shader(著色器)編譯 682
15.5.1 打包與運行 682
15.5.2 Shader重復打包 682
15.5.3 Shader宏 683
15.5.4 Shader與AB包 686
15.5.5 Shader打包剝離 686
15.6 美術資源管理 688
15.6.1 版本管理 688
15.6.2 材質丟失 689
15.6.3 協作開發與多工程 689
15.6.4 美術資源生成 690
15.7 小結 690
第 16章 自動化與打包 691
16.1 自動化設置資源 691
16.1.1 設置貼圖格式 691
16.1.2 動畫控制器 694
16.1.3 設置模型格式 695
16.1.4 導出動畫文件 695
16.1.5 生成角色Prefab 696
16.1.6 生成場景 697
16.1.7 場景無法保存 699
16.1.8 自動生成UI圖集 699
16.1.9 更換Shader殘留宏 700
16.1.10 自動生成變種收集器 703
16.1.11 剔除頂點色 704
16.2 自動化打包 705
16.2.1 打包過程中的事件 706
16.2.2 打包機的選擇 707
16.2.3 打包后自動壓縮 707
16.2.4 調用shell腳本 708
16.2.5 命令行打開工程 709
16.2.6 腳本化打包參數 711
16.2.7 Jenkins 712
16.3 小結 714
第 17章 代碼優化 715
17.1 Unity代碼優化 715
17.1.1 緩存對象 715
17.1.2 減少腳本 716
17.1.3 減少Update()執行 716
17.1.4 緩存池 717
17.1.5 日志優化 718
17.2 C#代碼優化 719
17.2.1 入棧和出棧 720
17.2.2 值類型和引用類型 721
17.2.3 裝箱和拆箱 722
17.2.4 字符串 723
17.2.5 struct 724
17.2.6 GC 725
17.3 Profiler內存管理 726
17.3.1 內存泄漏 726
17.3.2 耗時函數統計 727
17.3.3 自定義采樣 729
17.3.4 堆內存分配 730
17.3.5 原生內存分配 731
17.3.6 Unity內存 732
17.3.7 Memory Profiler 733
17.3.8 真機Profiler 735
17.3.9 Profiler寫入和讀取 736
17.3.10 渲染性能調試 737
17.4 著色器優化 739
17.4.1 頂點著色器 740
17.4.2 片元著色器 741
17.4.3 條件分支 742
17.5 小結 742
第 18章 通用案例與優化 743
18.1 客戶端框架 743
18.1.1 UI框架 743
18.1.2 UI代碼生成 745
18.1.3 協議代碼生成 746
18.1.4 其他代碼生成 747
18.1.5 數據監聽 747
18.1.6 事件管理器 749
18.2 客戶端優化與案例 752
18.2.1 懶加載 752
18.2.2 懶加載UI 752
18.2.3 懶加載UI 特效 754
18.2.4 編輯與運行時加載資源 756
18.2.5 資源名與路徑 758
18.2.6 異步加載 759
18.2.7 界面返回 760
18.2.8 過度繪制 760
18.2.9 UGUI網格重建 763
18.2.10 RaycastTarget優化 765
18.2.11 小地圖優化 766
18.2.12 覆蓋材質 766
18.2.13 通用Shader面板 767
18.2.14 離線合并貼圖 770
18.2.15 運行時合并ASTC貼圖 771
18.2.16 運行時合并圖集 773
18.2.17 運行時合并網格 774
18.2.18 Prefab嵌套與只讀 776
18.2.19 AB文件合并 777
18.3 小結 778
本書分為兩大部分,其中第一部分“基礎篇”包括第1~11章,第二部分“進階篇”包括第12~18章。Unity 3D初學者在學習第一部分后,完全可以制作出屬于自己的游戲。但是能做出來不代表做得好,這里的“好”主要是指游戲性能高以及開發難度大。從商業游戲的角度來說,必須做到這兩點,所以第二部分主要講解Unity 3D的性能與原理。除第1章外,書中的每一章都包含豐富的示例和源代碼,它們是非常寶貴的實戰經驗,可以直接應用在實際開發中。
pagetop