內容簡介
本書為第二版,采用Unity 2017。全書分為實戰項目篇與開發理論篇進行係統講解。實戰項目篇由淺入深提供四個教學案例:2D小遊戲兩個和兩款3D大型教學案例。通過本篇的認真學習,讀者可以達到優秀開發者的水平。開發理論篇,從初學者容易入門的角度把全書分為上、下兩篇各15章。上篇完全是為零基礎遊戲愛好者或者在校大學生所準備,采用“案例化”教學思路,所學知識點與遊戲案例緊密結閤。下篇是理論進階篇,主要學習3D數學、3D圖形學(3D圖形渲染/貼圖/PBS材質/Shader)、TimeLine& Cinemachine、Unity2017新導航尋路、項目優化策略、遊戲移植與手指觸控、對象緩衝池、網絡Socket、AssetBundle資源動態加載與AssetBundle框架設計等。
作者簡介
擁有十多年的軟件、遊戲研發與教學經驗,具備深厚語言基礎。早年在國內上市企業做研發經理,熟悉企業大型軟件運作管理過程、軟件架構設計理論。精通與熟悉Unity3D、XNA等3D與2D 遊戲開發技術,教學語言思路清晰,循循善誘的教學方法深受廣大學子歡迎。
目錄
項目實戰篇
實戰項目1:記憶卡牌 3
1. 策劃 3
2. 場景搭建 4
3. 遊戲核心邏輯 5
實戰項目2:Flappy Bird 8
1. 策劃 8
2. 場景搭建 9
3. 主角 10
4. 道具開發 12
5. UI界麵與遊戲周期管理 15
實戰項目3:不夜城跑酷 17
1. 策劃 17
2. 場景搭建 19
3. 主角 21
4. 道具開發 24
5. 場景與道具的動態生成算法 31
6. UI界麵與遊戲周期管理 34
7. 對象緩衝池管理 38
實戰項目4:生化危機 41
1. 策劃 41
2. 場景搭建 45
3. 主角 47
4. 道具開發 47
5. UI界麵與遊戲周期管理 51
開發理論篇 上篇
第1章 遊戲曆史與Unity發展概述 54
1.1 “錢途”無限的遊戲開發領域 54
1.1.1 Unity版本快速迭代升級 55
1.1.2 Unity技術應用範圍 56
1.1.3 強大的跨平颱性 56
1.2 電子遊戲發展史 57
1.3 遊戲引擎與Unity的發展曆程 60
1.3.1 什麼是遊戲引擎 60
1.3.2 遊戲引擎的功能 61
1.3.3 為什麼需要使用遊戲引擎 61
1.3.4 遊戲引擎的發展 62
1.3.5 Unity 遊戲引擎的特點 62
1.3.6 Unity引擎的主要特性 63
1.3.7 Unity遊戲引擎的發展曆史 64
1.4 Unity下載與安裝 65
1.4.1 Unity下載與安裝 65
1.4.2 Unity的資源商店(Asset Store) 66
第2章 Unity2017.x 安裝與3D模型入門 67
2.1 Unity 2017.x版本的下載安裝 67
2.2 Unity編輯器界麵 75
2.2.1 掌握Unity 編輯器的布局與調整 77
2.2.2 瞭解Unity 編輯器各個重要視圖與作用 78
2.3 3D模型入門操作 80
2.3.1 3D模型的位移、鏇轉與縮放 80
2.3.2 3D模型操作快捷方式 82
2.3.3 選擇3D模型的“正”方嚮 82
2.3.4 使用屬性窗口進行精確調整 84
2.4 開發Unity“Hello World” 85
2.5 本章練習與總結 88
第3章 3D模型基礎 89
3.1 Unity編輯器進一步講解 89
3.1.1 Unity菜單 89
3.1.2 項目(Project)視圖 93
3.1.3 場景(Scene)視圖 95
3.1.4 視圖顯示模式 96
3.1.5 場景視圖的查看與導航 97
3.2 世界、局部與左手坐標係 98
3.2.1 現實世界的“世界坐標”與“局部坐標” 98
3.2.2 演示兩種坐標的差異 98
3.2.3 使用腳本方式演示差異 99
3.2.4 什麼是“左手坐標係” 100
3.2.5 使用控製颱(Console)窗口進行代碼調試 100
3.3 腳本知識入門 101
3.3.1 鍵盤與鼠標輸入代碼 101
3.3.2 環繞鏇轉 101
3.4 小項目開發:地球環繞太陽鏇轉 101
3.5 本章練習與總結 105
3.6 案例開發任務 105
第4章 地形編輯器 106
4.1 創建基本地形 106
4.1.1 繪製貼圖紋理 109
4.1.2 製作各種地形 110
4.1.3 種植樹木與花草 113
4.2 觀察虛擬世界 113
4.3 擴展地形編輯 115
4.4 本章練習與總結 116
4.5 案例開發任務 117
第5章 光源 118
5.1 概述 118
5.2 光源的分類與重要參數 120
5.3 典型光源場景製作 121
5.4 本章練習與總結 123
5.5 案例開發任務 123
第6章 光照烘焙 124
6.1 概述 124
6.2 光照烘焙 125
6.3 反射探針(Reflection Probe) 132
6.4 光照探頭(Light Probe) 134
6.5 光照預覽窗口(Light Explorer) 137
6.6 本章練習與總結 138
6.7 案例開發任務 138
第7章 音頻 139
7.1 概述 139
7.2 音頻剪輯屬性 140
7.3 音頻監聽與音頻源組件 140
7.4 音頻混響器與濾波器組件 143
7.5 音頻混音器(Audio Mixer) 144
7.6 本章練習與總結 151
7.7 案例開發任務 151
第8章 Unity腳本程序設計 153
8.1 Unity 腳本編輯器介紹 153
8.1.1 什麼是.Net框架 153
8.1.2 什麼是Mono 與MonoDevelop 154
8.1.3 什麼是Visual Studio 154
8.2 腳本程序基礎 155
8.2.1 創建腳本注意事項 155
8.2.2 項目工程分層設計 156
8.2.3 如何更改腳本模闆 157
8.3 Unity重要腳本函數 157
8.3.1 Unity事件函數 157
8.3.2 Untiy重要核心類學習 158
8.3.3 GameObject 類 158
8.3.4 MonoBehaviour類 162
8.3.5 Transform類 165
8.3.6 Time類 166
8.4 Unity腳本生命周期 167
8.4.1 Unity事件函數調用順序 168
8.4.2 事件函數禁用與啓用規律 169
8.5 Unity僞多綫程揭秘 172
8.6 修改Unity腳本執行順序 173
8.7 Unity 重要應用類 175
8.8 Unity輸入管理器 176
8.9 本章練習與總結 178
第9章 UI界麵開發 179
9.1 概述 179
9.2 基礎控件 182
9.2.1 Canvas畫布控件 182
9.2.2 EventSystem控件 183
9.2.3 Panel 控件 184
9.2.4 Text控件 184
9.2.5 Image控件 185
9.2.6 Button控件 187
9.2.7 Button事件係統 189
9.3 Anchor錨點與屏幕自適應 191
9.4 UGUI高級控件 193
9.4.1 Toggle控件 193
9.4.2 Slider控件 194
9.4.3 Scrollbar控件 194
9.4.4 ScrollRect復閤控件 195
9.4.5 TabPage標簽頁麵 197
9.5 UGUI布局管理控件 199
9.6 本章練習與總結 202
9.7 案例開發任務 202
第10章 3D模型與動畫製作 204
10.1 概述 205
10.2 3DMax軟件基本使用 205
10.3 3D模型尺寸單位設置 207
10.4 3DMax 模型製作與導齣Unity流程 208
10.5 模型導齣丟失貼圖問題 212
10.6 3D文字的製作與動畫 212
10.7 角色Legacy動畫 213
10.8 Animation 動畫編輯工具 216
10.9 自定義資源包的導入與導齣 219
10.10 本章練習與總結 222
10.11 案例開發任務 222
第11章 物理學模擬 223
11.1 概述 223
11.2 剛體 223
11.3 物理材質 227
11.4 腳本控製剛體 229
11.5 關節係統 230
11.5.1 鉸鏈關節 230
11.5.2 彈簧關節 232
11.5.3 固定關節 232
11.5.4 角色關節 233
11.5.5 布料模擬 235
11.6 物理管理器(Physics Manager) 237
11.7 本章練習與總結 238
第12章 碰撞體與觸發器 239
12.1 概述 239
12.2 碰撞體的分類與作用 240
12.3 碰撞檢測事件函數 241
12.4 觸發檢測事件函數 242
12.5 碰撞過濾 244
12.6 本章練習與總結 246
12.7 案例開發任務 247
第13章 Unity 2D技術 248
13.1 概述 248
13.2 項目示例講解 248
13.3 Untiy 2D物理引擎 253
13.3.1 2D剛體 253
13.3.2 2D碰撞體 254
13.3.3 2D關節係統 256
13.4 Unity 2D特效功能 256
13.4.1 Sprite Mask 功能 256
13.4.2 精靈效應器組件 258
13.5 本章練習與總結 263
13.6 案例開發任務 263
第14章 協程與調用函數 264
14.1 協程定義與功能 264
14.2 調用函數定義與功能 265
14.3 協程與調用函數區彆與適用範圍 266
14.4 本章練習與總結 267
14.5 案例開發任務 267
第15章 數據傳值技術 268
15.1 概述 268
15.2 SendMessage 簡單傳值 269
15.3 SendMessage 高級傳值 271
15.4 本章練習與總結 272
開發理論篇 下篇
第16章 3D數學 274
16.1 坐標係統 274
16.2 嚮量 279
16.3 本章練習與總結 287
第17章 3D圖形學 288
17.1 3D圖形學概述 288
17.2 Unity 3D圖形渲染 289
17.2.1 Mesh Fillter網格過濾器 289
17.2.2 Mesh Renderer網格渲染器 290
17.2.3 Skinned Mesh Renderer濛皮網格渲染器 291
17.3 貼圖 292
17.3.1 二維貼圖 292
17.3.2 視頻貼圖 297
17.3.3 渲染貼圖 301
17.4 材質 302
17.4.1 基於物理著色(PBS)的材質係統 303
17.4.2 材質球屬性 305
17.4.3 材質球分類 306
17.5 著色器(Shader) 313
17.5.1 概述 313
17.5.2 基本原理:圖形渲染管綫 314
17.5.3 著色器的分類與基本結構 315
17.5.4 固定渲染管綫著色器 318
17.5.5 錶麵著色器 320
17.6 本章練習與總結 327
第18章 TimeLine& Cinemachine技術 328
18.1 TimeLine時間綫 328
18.2 Cinemachine 虛擬攝像機 332
18.3 Frame Recorder幀錄製器 335
18.4 本章練習與總結 336
第19章 粒子係統 337
19.1 概述 337
19.2 基本粒子組件屬性 338
19.3 粒子係統示例 344
19.4 Unity內置粒子係統包 346
19.5 粒子係統的腳本調用方式 347
19.6 Line Renderer & Trail Renderer 348
19.7 本章練習與總結 351
第20章 Mecanim動畫係統 352
20.1 概述 352
20.2 製作Mecanim動畫係統 353
20.2.1 步驟一:製作Avatar替身 353
20.2.2 步驟二:設置動畫狀態機(Animator Controller) 356
20.2.3 步驟三:設置動畫循環 359
20.2.4 步驟四:使用代碼控製角色動畫 359
20.3 融閤術技術 360
20.4 動畫層與身體濛版 365
20.5 動畫復用技術 367
20.6 StateMachineBehaviour腳本 368
20.7 本章練習與總結 370
第21章 導航尋路 371
21.1 基本導航尋路 371
21.2 斜坡與跳躍 374
21.3 使用Off Mesh Link組件 375
21.4 網格分層 376
21.5 Nav Mesh Obstacle組件 378
21.6 基於組件Nav Mesh的新特性 380
21.7 Nav Mesh定嚮3D空間任何方嚮新特性 382
21.8 Nav Mesh動態烘焙新特性 383
21.9 本章練習與總結 385
第22章 項目研發常用優化策略 386
22.1 遮擋剔除(Occlusion Culling) 386
22.2 層級細節(LOD) 390
22.3 項目調優工具數據分析器(Profiler) 393
22.4 項目優化策略 395
22.4.1 項目優化之DrawCall 395
22.4.2 項目優化之模型與圖像方麵 397
22.4.3 項目優化之光照與攝像機方麵 399
22.4.4 項目優化之程序優化方麵 401
22.4.5 項目優化之Unity係統設置方麵 403
22.4.6 項目優化之良好開發與使用習慣 404
22.5 本章練習與總結 404
第23章 Unity遊戲移植與手指觸控識彆 406
23.1 JDK安裝與環境參數配置 406
23.1.1 下載與安裝JDK 406
23.1.2 設置JDK環境 409
23.2 Android 虛擬機的安裝與配置 412
23.2.1 下載與配置 Android SDK 412
23.2.2 更新環境變量 415
23.3 Unity相應配置 415
23.3.1 Unity配置 Android SDK 路徑 415
23.3.2 發布程序,切換到Android平颱 416
23.3.3 更改默認的産品標示符 417
23.3.4 輸齣*.apk 包 417
23.3.5 真機測試 418
23.4 手指觸控識彆 418
23.4.1 手指觸控API 418
23.4.2 手指觸控常見方式 419
23.5 本章練習與總結 422
第24章 軟件重構思想 423
24.1 軟件重構的重要性 423
24.2 項目示例 424
24.3 本章練習與總結 427
第25章 射綫 428
25.1 射綫概述 428
25.2 項目示例講解 429
25.2.1 射擊場景開發 429
25.2.2 角色尋路開發 430
25.3 本章練習與總結 431
第26章 數據持久化技術 432
26.1 PlayerPrefs持久化技術 432
26.2 XML持久化技術 434
26.3 本章練習與總結 439
第27章 預加載與對象緩衝池技術 440
27.1 概述 440
27.2 簡單對象緩衝池技術 441
27.3 高級對象緩衝池技術 445
27.4 本章練習與總結 451
第28章 網絡基礎 452
28.1 網絡概述 452
28.2 多綫程技術 453
28.2.1 多綫程的定義 453
28.2.2 多綫程的優先級 454
28.2.3 多綫程的狀態控製 455
28.2.4 多綫程的綫程同步 456
28.3 套接字Socket技術 458
28.3.1 網絡基礎知識 458
28.3.2 Socket定義 459
28.3.3 麵嚮連接的Socket 459
28.3.4 無連接的Socket 460
28.3.5 同步Socket 460
28.3.6 異步Socket 461
28.4 網絡下載WWW類 464
28.5 本章練習與總結 466
第29章 AssetBundle資源動態加載 467
29.1 AssetBundle概述 467
29.2 創建AssetBundle 468
29.3 下載AssetBundle 469
29.4 AssetBundle的加載與卸載 470
29.5 AssetBundle依賴關係 472
29.6 本章練習與總結 472
第30章 AssetBundle框架設計 473
30.1 AssetBundle框架整體設計 473
30.2 自動化創建AssetBundle 475
30.2.1 自動給資源文件添加標記 475
30.2.2 打包資源且輸齣路徑 477
30.2.3 刪除路徑中所有資源 478
30.3 單一AssetBundle包的加載與管理 478
30.4 AssetBundle整體管理 480
30.4.1 讀取項目清單文件 481
30.4.2 AssetBundle關係類 482
30.4.3 AssetBundle總管理類 482
30
Unity3D/2D遊戲開發從0到1(第二版) 下載 mobi epub pdf txt 電子書 格式