Unity 遊戲開發技術詳解與典型案例

Unity 遊戲開發技術詳解與典型案例

《Unity 遊戲開發技術詳解與典型案例》是2020年1月人民郵電出版社出版的圖書,作者是吳亞峰、徐歆愷、蘇亞光。

基本介紹

  • 書名:Unity 遊戲開發技術詳解與典型案例
  • 作者:吳亞峰、徐歆愷、蘇亞光
  • ISBN:9787115494306
  • 頁數:729頁
  • 定價:118元
  • 出版社:人民郵電出版社
  • 出版時間:2020年1月
  • 裝幀:平裝
  • 開本:16開
內容簡介,圖書目錄,

內容簡介

本書對Unity 3D集成開發環境界面、腳本的編寫和眾多特效的實現進行了詳細介紹。全書共分16章。主要內容包括:Unity 3D基礎、Unity 3D集成開發環境、Unity腳本的開發、Unity圖形用戶界面基礎、物理引擎、著色器、常用著色器特效、3D遊戲開發的常用技術、光影效果的使用、模型與動畫、地形與尋路技術、遊戲資源的更新、多執行緒技術與網路開發、Unity 2D遊戲開發、常用性能最佳化技術、休閒遊戲等。
本書適合各個層級Unity 3D套用開發人員閱讀,也可供相關專業人士參考。

圖書目錄

第 1章 Unity基礎及集成開發環境的
搭建 1
1.1 Unity基礎知識概述 1
1.1.1 初識Unity 1
1.1.2 Unity的誕生及發展 1
1.1.3 Unity的市場前景 2
1.1.4 獨具特色的Unity 3
1.2 Unity集成開發環境的搭建 10
1.2.1 Windows平台下Unity的
下載及安裝 10
1.2.2 Mac OS平台下Unity的下載及安裝 14
1.2.3 目標平台的SDK與Unity
集成 16
1.3 第 一個Unity程式 19
1.4 本書案例的導入及運行 24
1.5 本章小結 28
第 2章 Unity集成開發環境詳解 29
2.1 Unity集成開發環境的整體布局 29
2.1.1 概述 29
2.1.2 選單欄 30
2.1.3 工具列 30
2.1.4 場景設計面板 31
2.1.5 遊戲預覽面板 35
2.1.6 遊戲組成對象列表 36
2.1.7 項目資源列表 37
2.1.8 屬性查看器 38
2.1.9 狀態欄與控制台 39
2.1.10 動畫視圖 39
2.1.11 動畫控制器編輯視圖 39
2.2 選單欄 40
2.2.1 File選單 40
2.2.2 Edit選單 43
2.2.3 Assets選單 50
2.2.4 GameObject選單 55
2.2.5 Component選單 59
2.2.6 Window選單 66
2.2.7 Help選單 71
2.3 本章小結 77
第3章 Unity腳本程式的開發 79
3.1 Unity腳本概述 79
3.2 Unity中C#腳本的注意事項 79
3.3 Unity腳本的基礎語法 81
3.3.1 常用操作 81
3.3.2 記錄時間 81
3.3.3 訪問遊戲對象組件 82
3.3.4 訪問其他遊戲對象 83
3.3.5 向量 85
3.3.6 成員變數和靜態成員變數 87
3.3.7 實例化遊戲對象 88
3.3.8 協同程式和中斷 88
3.3.9 一些重要的類 89
3.3.10 特定資料夾 93
3.3.11 腳本編譯 94
3.3.12 與銷毀相關的方法 94
3.3.13 性能最佳化 96
3.4 綜合示例 97
3.4.1 示例策劃及準備工作 97
3.4.2 創建項目及場景搭建 97
3.4.3 飛機控制腳本實現 100
3.4.4 攝像機跟隨腳本實現 103
3.5 本章小結 103
第4章 Unity圖形用戶界面基礎 105
4.1 GUI系統 105
4.1.1 GUI組件的變數 105
4.1.2 GUI中的常用控制項 113
4.1.3 GUI控制項綜合示例 141
4.2 UGUI系統 144
4.2.1 創建UGUI控制項 144
4.2.2 Canvas 145
4.2.3 EventSystem組件 146
4.2.4 Rect Transform組件 147
4.2.5 Panel控制項 147
4.2.6 Button控制項 148
4.2.7 Text控制項 151
4.2.8 Image控制項 152
4.2.9 Raw Image控制項 152
4.2.10 Slider控制項 153
4.2.11 Scrollbar控制項 154
4.2.12 Toggle控制項 155
4.2.13 Input Field控制項 156
4.2.14 DropDown控制項 157
4.2.15 Scroll View控制項 157
4.2.16 UGUI布局管理的使用及
相關組件介紹 159
4.2.17 UGUI中不規則形狀的
按鈕的碰撞檢測 163
4.2.18 UGUI螢幕自適應和錨點 164
4.2.19 UGUI綜合示例—音樂
播放器的UI搭建 165
4.3 預製件資源的套用 173
4.3.1 預製件資源的創建 173
4.3.2 通過prefab資源進而實例化對象 174
4.4 常用的輸入對象 176
4.4.1 Touch輸入對象 176
4.4.2 Input輸入對象 178
4.5 本章小結 181
第5章 物理引擎 183
5.1 剛體 183
5.1.1 剛體特性 183
5.1.2 物理管理器 190
5.2 碰撞器 192
5.2.1 碰撞器的添加 193
5.2.2 碰撞過濾 195
5.2.3 觸發器 199
5.2.4 碰撞檢測 199
5.2.5 物理材質 201
5.2.6 碰撞器互動 202
5.3 關節 202
5.3.1 鉸鏈關節的特性 202
5.3.2 鉸鏈關節的創建 203
5.3.3 固定關節的特性 205
5.3.4 固定關節的創建 205
5.3.5 彈簧關節的特性 206
5.3.6 彈簧關節的創建 206
5.3.7 角色關節的特性 207
5.3.8 角色關節的創建 208
5.3.9 可配置關節的特性 208
5.3.10 可配置關節的創建 210
5.3.11 關節綜合示例—機械手 211
5.4 交通工具 216
5.4.1 車輪碰撞器的添加 216
5.4.2 車輪碰撞器的特性 217
5.4.3 車輪碰撞器的套用 218
5.5 布料 223
5.5.1 蒙皮格線的特性 223
5.5.2 布料的特性 223
5.5.3 布料簡單示例 224
5.6 力場 226
5.6.1 力場的特性 226
5.6.2 力場綜合示例 226
5.7 角色控制器 227
5.7.1 角色控制器的特性 227
5.7.2 角色控制器綜合示例 228
5.8 粒子系統 229
5.8.1 粒子系統簡介 229
5.8.2 粒子系統的特性 230
5.8.3 通過腳本控制粒子系統 242
5.8.4 粒子系統綜合示例 249
5.9 物理引擎在動畫系統中的使用 254
5.9.1 場景的搭建 254
5.9.2 腳本的開發 257
5.9.3 運行效果 258
5.10 物理引擎綜合示例 258
5.10.1 場景的搭建 258
5.10.2 界面的搭建 264
5.10.3 腳本的開發 265
5.10.4 示例開發總結 267
5.11 本章小結 267
第6章 著色器 269
6.1 初識著色器 269
6.1.1 著色器概述 269
6.1.2 材質、著色器與貼圖 270
6.1.3 ShaderLab語法基礎 270
6.1.4 著色器中涉及的各種空間
概念 276
6.2 渲染管線 278
6.2.1 OpenGL渲染管線 279
6.2.2 DirectX渲染管線 284
6.2.3 Unity可程式渲染階段 285
6.3 著色器的形態 286
6.3.1 固定管線著色器 286
6.3.2 頂點片元著色器 286
6.3.3 表面著色器 292
6.4 表面著色器詳述 293
6.4.1 表面著色器基礎知識 293
6.4.2 通過表面著色器實現
體積霧 298
6.5 渲染通道的通用指令 303
6.5.1 設定LOD數值 304
6.5.2 渲染佇列 305
6.5.3 混合模式 307
6.5.4 Alpha測試 309
6.5.5 深度測試 310
6.5.6 模板測試 312
6.5.7 通道遮罩 316
6.5.8 面的剔除操作 317
6.5.9 抓屏操作 319
6.6 曲面細分著色器 320
6.6.1 固定數量的曲面細分 320
6.6.2 基於距離的曲面細分 322
6.6.3 基於邊緣長度的
曲面細分 324
6.6.4 Phong曲面細分 325
6.7 幾何著色器 326
6.8 Standard Shader 328
6.8.1 基於物理的著色 328
6.8.2 材質編輯器 329
6.9 著色器的組織和最佳化 331
6.9.1 著色器的組織和復用 331
6.9.2 移動平台的最佳化 335
6.10 著色器綜合示例 337
6.10.1 示例策劃及準備工作 337
6.10.2 創建項目及場景搭建 339
6.10.3 著色器及相關腳本的
開發 340
6.10.4 節點對象的創建及相關
腳本的開發 349
6.10.5 示例運行效果 351
6.11 本章小結 352
第7章 常用著色器特效 353
7.1 頂點動畫 353
7.1.1 基本原理 353
7.1.2 開發步驟 354
7.2 紋理動畫 356
7.2.1 基本原理 357
7.2.2 開發步驟 357
7.3 邊緣發光 358
7.3.1 基本原理 358
7.3.2 開發步驟 359
7.4 描邊效果 360
7.4.1 基本原理 360
7.4.2 開發步驟 362
7.5 遮擋透視效果 363
7.5.1 基本原理 363
7.5.2 開發步驟 364
7.6 菲涅爾效果 365
7.6.1 基本原理 365
7.6.2 立方體紋理技術 366
7.6.3 開發步驟 366
7.7 高斯模糊 369
7.7.1 基本原理 369
7.7.2 開發步驟 370
7.8 Bloom效果 372
7.8.1 基本原理 373
7.8.2 開發步驟 373
7.9 景深效果 375
7.9.1 基本原理 375
7.9.2 開發步驟 376
7.10 積雪效果 378
7.10.1 基本原理 378
7.10.2 開發步驟 379
7.11 浴室玻璃效果 381
7.11.1 基本原理 381
7.11.2 開發步驟 381
7.12 消融效果 383
7.12.1 基本原理 383
7.12.2 開發步驟 383
7.13 本章小結 385
第8章 3D遊戲開發的常用技術 387
8.1 立方貼圖技術的實際套用 387
8.1.1 Unity天空盒 387
8.1.2 Cubemap的套用 390
8.2 3D拾取技術 392
8.3 視頻播放器 396
8.3.1 導入視頻片段的屬性 396
8.3.2 視頻播放器示例 397
8.4 動態字型 399
8.5 重力加速度感測器 401
8.6 PlayerPrefs類 403
8.7 虛擬按鈕與搖桿的使用 404
8.7.1 標準資源包的下載與導入 404
8.7.2 虛擬按鈕和搖桿使用示例 406
8.8 線的渲染 408
8.9 Render Texture的套用 410
8.10 聲音 412
8.10.1 聲音類型 412
8.10.2 音頻管理器 412
8.10.3 音頻監聽器 413
8.10.4 音頻源 413
8.10.5 音頻效果 417
8.10.6 音頻混響區 420
8.10.7 簡單的聲音控制示例 421
8.10.8 混音器 423
8.10.9 錄音 430
8.11 Cinemachine相機的使用 431
8.11.1 Cinemachine相機的下載
與安裝 431
8.11.2 Cinemachine相機的使用 432
8.12 Timeline的使用 433
8.13 多場景編輯 434
8.13.1 多場景編輯的基礎操作 434
8.13.2 多場景編輯的高級
操作 436
8.13.3 還存在的問題 437
8.14 水特效 437
8.14.1 基礎知識 437
8.14.2 水特效示例 438
8.15 霧特效 440
8.15.1 示例效果與基本原理 440
8.15.2 場景搭建與開發步驟 441
8.16 3D場景中的其他特效 444
8.16.1 光源周圍光暈 444
8.16.2 面板渲染 445
8.16.3 投影器 446
8.17 本章小結 446
第9章 光影效果的使用 447
9.1 渲染路徑與顏色空間 447
9.1.1 渲染路徑 447
9.1.2 顏色空間 448
9.2 光源 448
9.2.1 點光源 449
9.2.2 平行光光源 450
9.2.3 聚光燈光源 451
9.2.4 區域光光源 451
9.2.5 發光材質 452
9.2.6 Cookies 452
9.2.7 光照過濾 453
9.3 陰影 454
9.3.1 陰影質量 454
9.3.2 陰影性能 456
9.3.3 陰影的硬體支持 456
9.4 光照貼圖 456
9.4.1 對場景進行光照烘焙 457
9.4.2 光照烘焙參數詳解 458
9.5 光探頭 460
9.5.1 光探頭使用示例 460
9.5.2 光探頭套用細節 462
9.5.3 光探頭代理 462
9.6 法線貼圖 465
9.6.1 在Unity中使用法線
貼圖 465
9.6.2 在3ds max中製作法線
貼圖 468
9.7 鏡頭光暈 469
9.8 反射探頭 470
9.8.1 反射探頭的使用 470
9.8.2 反射探頭參數詳解 472
9.9 鏡子的開發 474
9.9.1 場景的搭建 475
9.9.2 鏡面著色器的開發 478
9.9.3 C#腳本的開發 479
9.10 真實水面特效的開發 481
9.10.1 基本原理 482
9.10.2 場景的搭建 483
9.10.3 C#腳本的開發 483
9.10.4 鏡面著色器的開發 486
9.11 本章小結 488
第 10章 模型與動畫 489
10.1 3D模型的導入 489
10.1.1 主流3D建模軟體簡介 489
10.1.2 Unity與建模軟體單位的
比例關係 490
10.1.3 將3D模型導入Unity 491
10.2 Mesh 492
10.2.1 格線過濾器 493
10.2.2 Mesh屬性和方法簡介 493
10.2.3 Mesh的使用 494
10.2.4 使用Mesh使物體變形
示例 494
10.3 Shatter Toolkit的使用 499
10.3.1 Shatter Toolkit簡介 499
10.3.2 使用Shatter Toolkit
示例 500
10.4 舊版動畫系統 507
10.4.1 角色動畫資源的導入 507
10.4.2 動畫控制器 508
10.4.3 動畫腳本 509
10.4.4 使用舊版動畫系統示例 510
10.5 動畫系統 513
10.5.1 角色動畫的配置 513
10.5.2 動畫控制器的創建 519
10.5.3 動畫控制器的配置 519
10.5.4 角色動畫的重定向 523
10.5.5 角色動畫的混合—創建
動畫混合樹 524
10.5.6 角色動畫的混合—混合
類型介紹 526
10.5.7 Mecanim動畫系統中的
代碼控制 527
10.5.8 示例分析 532
10.6 動畫變形 535
10.7 本章小結 538
第 11章 地形與尋路技術 539
11.1 地形引擎 539
11.1.1 地形的創建 539
11.1.2 灰度圖的使用 544
11.2 樹編輯器 546
11.2.1 屬性參數簡介 546
11.2.2 一個簡單的示例 548
11.3 拖尾渲染器 550
11.3.1 背景簡介 550
11.3.2 拖尾渲染器的屬性 551
11.3.3 拖尾渲染器的使用 552
11.3.4 產生汽車輪胎剎車痕
示例 552
11.4 自動尋路系統 556
11.4.1 基礎知識 556
11.4.2 一個簡單的示例 557
11.5 本章小結 562
第 12章 遊戲資源的更新 563
12.1 AssetBundle 563
12.1.1 AssetBundle簡介 563
12.1.2 AssetBundle的創建 563
12.1.3 AssetBundle的下載 566
12.1.4 AssetBundle的載入和
卸載 568
12.1.5 關於AssetBundle 569
12.1.6 本節小結 570
12.2 Lua熱更新 571
12.2.1 熱更新簡介 571
12.2.2 xLua簡介 572
12.2.3 xLua框架簡介 574
12.2.4 xLua常用方法簡介 575
12.2.5 xLua熱更新示例 577
12.2.6 熱更新伺服器的配置 581
12.2.7 本節小結 583
12.3 本章小結 583
第 13章 多執行緒技術與網路開發 585
13.1 多執行緒技術 585
13.1.1 基礎知識 585
13.1.2 多執行緒技術用於大量
計算 586
13.1.3 多執行緒技術在網路開發中的
套用 588
13.2 WWW類 592
13.2.1 用WWW類訪問網路
資源 592
13.2.2 場景的搭建 592
13.2.3 C#腳本的編寫 592
13.3 JSON簡介與套用 593
13.3.1 基礎知識 593
13.3.2 JSON的解析 593
13.4 網路類 594
13.4.1 靜態變數 594
13.4.2 靜態方法 597
13.4.3 訊息傳送 602
13.5 基於Unity Network開發網路
遊戲 604
13.5.1 非授權伺服器和授權
伺服器 604
13.5.2 網路視圖組件 604
13.5.3 示例的效果預覽 604
13.5.4 示例場景的搭建 605
13.5.5 項目主體腳本的開發 607
13.5.6 伺服器和客戶端的發布 612
13.6 基於Netty開發網路遊戲 613
13.6.1 Netty框架簡介 613
13.6.2 網路遊戲架構簡介 613
13.6.3 示例的效果預覽 615
13.6.4 示例場景的搭建 615
13.6.5 伺服器端的開發 616
13.6.6 客戶端的開發 616
13.7 基於KBEngine伺服器開發網路
遊戲 620
13.7.1 環境的搭建 621
13.7.2 示例的效果預覽 623
13.7.3 示例場景的搭建 623
13.7.4 伺服器端的開發 624
13.7.5 客戶端的開發 624
13.8 本章小結 630
第 14章 Unity 2D遊戲開發 631
14.1 Unity 2D簡介 631
14.1.1 Unity 2D項目的創建 631
14.1.2 Unity 2D的功能 632
14.1.3 Unity 2D遊戲開發的工作
流程 632
14.2 Unity 2D核心功能對象——
Sprite 633
14.2.1 Sprite對象的創建和基本
用法 633
14.2.2 換幀動畫的製作 634
14.2.3 製作換幀動畫的具體
步驟 635
14.3 Unity 2D中的物理引擎 639
14.3.1 2D剛體 640
14.3.2 2D碰撞器 644
14.3.3 2D關節 647
14.3.4 2D效應器 651
14.3.5 使用2D物理引擎製作撞
冰塊示例 654
14.4 瓦片地圖 660
14.4.1 瓦片資源的創建 660
14.4.2 瓦片畫板與瓦片地圖的
創建與使用 661
14.5 一個完整的2D遊戲示例 662
14.5.1 遊戲背景及功能概述 662
14.5.2 遊戲的策劃及準備工作 662
14.5.3 遊戲的架構 664
14.5.4 主選單場景的開發 664
14.5.5 遊戲場景的開發 666
14.6 本章小結 672
第 15章 常用性能最佳化技術與編輯器的
擴展 673
15.1 程式性能的分析 673
15.1.1 Profiler工具的使用方法 673
15.1.2 Profiler工具的參數說明 676
15.2 代碼的斷點調試 677
15.2.1 通過MonoDevelop調試 678
15.2.2 通過Microsoft Visual Studio
Tools for Unity調試 679
15.3 最佳化事項 680
15.3.1 遮擋剔除技術 680
15.3.2 批處理技術 682
15.3.3 移動平台的最佳化技巧 682
15.4 編輯器的擴展——Editor 683
15.4.1 自定義檢視面板 683
15.4.2 序列化檢視面板 685
15.4.3 自定義視窗 687
15.4.4 自定義選單項 687
15.5 本章小結 688
第 16章 休閒遊戲—平衡球 689
16.1 背景及功能概述 689
16.1.1 背景概述 689
16.1.2 功能概述 690
16.2 遊戲的策劃及準備工作 692
16.2.1 遊戲的策劃 692
16.2.2 使用Unity開發遊戲前的
準備工作 692
16.3 遊戲的架構 696
16.3.1 各個場景簡介 696
16.3.2 遊戲架構簡介 697
16.4 主選單場景 698
16.4.1 場景的搭建 698
16.4.2 主攝像機的設定及腳本的
開發 700
16.5 幫助場景 709
16.5.1 場景的搭建 709
16.5.2 主攝像機的設定及腳本的
開發 709
16.5.3 球的設定及腳本的開發 714
16.6 關卡一場景 715
16.6.1 場景的搭建 715
16.6.2 主攝像機的設定及腳本的
開發 715
16.6.3 有關動畫的設定及腳本的
開發 719
16.6.4 球的設定及腳本的開發 724
16.7 關卡二場景 724
16.7.1 場景的搭建 724
16.7.2 主攝像機的設定及腳本的
開發 725
16.7.3 有關動畫的設定的及腳本的
開發 725
16.7.4 球的設定及腳本的
開發 725
16.8 場景的載入 725
16.9 遊戲的最佳化與改進 728

相關詞條

熱門詞條

聯絡我們