本書本著“起點(diǎn)低、終點(diǎn)高”的原則,內(nèi)容覆蓋了從學(xué)習(xí)Unity3D開發(fā)引擎必知必會(huì)的基礎(chǔ)知識(shí)到能夠熟練使用Unity 3D開發(fā)引擎制作簡(jiǎn)單3D游戲的每一個(gè)階段。全書共分為12章,前11章按照由易到難的順序依次介紹了Unity基礎(chǔ)與開發(fā)環(huán)境配置、腳本程序的開發(fā)、圖形用戶界面、物理引擎、著色器基礎(chǔ)、3D游戲開發(fā)常用技術(shù)、光影效果、模型與動(dòng)畫、地形與尋路技術(shù)、游戲資源更新及網(wǎng)絡(luò)開發(fā)。結(jié)尾一章給出了一個(gè)完整的游戲案例,既可以作為課程的總結(jié)與提高,也可以作為課程設(shè)計(jì)。
本書既可以作為高等院校計(jì)算機(jī)相關(guān)專業(yè)計(jì)算機(jī)游戲或多媒體虛擬現(xiàn)實(shí)及增強(qiáng)現(xiàn)實(shí)相關(guān)課程的教材,也可以作為相關(guān)領(lǐng)域開發(fā)人員的參考用書。
吳亞峰,畢業(yè)于北京郵電大學(xué),后留學(xué)澳大利亞臥龍崗大學(xué)取得碩士學(xué)位。1998年開始從事Java應(yīng)用的開發(fā),有十多年的Java開發(fā)與培訓(xùn)經(jīng)驗(yàn),是關(guān)注Android開發(fā)的人員,并開發(fā)出一系列的Android應(yīng)用程序與游戲。主要的研究方向?yàn)镺penGL ES、手機(jī)游戲、Java EE、搜索引擎,同時(shí)為手機(jī)游戲、Java EE獨(dú)立軟件開發(fā)工程師,并兼任百納科技Java培訓(xùn)中心首席培訓(xùn)師。近10年來為數(shù)十家企業(yè)培養(yǎng)了上千名軟件開發(fā)人員,曾編寫過《Android 2.0游戲開發(fā)實(shí)戰(zhàn)寶典》、《Android核心技術(shù)與實(shí)例詳解》、《Android 3D游戲開發(fā)—技術(shù)詳解與典型案例》、《Android應(yīng)用案例開發(fā)大全》和《Android游戲開發(fā)大全》等多本暢銷書籍。
第1章 Unity基礎(chǔ)與開發(fā)環(huán)境配置 1
1.1 初識(shí)Unity游戲開發(fā)引擎 1
1.1.1 Unity簡(jiǎn)介 1
1.1.2 Unity的誕生與發(fā)展 1
1.1.3 Unity的特色 2
1.2 Unity集成開發(fā)環(huán)境的搭建 3
1.3 Unity集成開發(fā)環(huán)境的配置 6
1.3.1 Unity集成開發(fā)環(huán)境的整體布局 6
1.3.2 Unity菜單欄 7
1.3.3 Unity工具欄 7
1.3.4 Unity場(chǎng)景設(shè)計(jì)面板 8
1.3.5 游戲預(yù)覽面板 8
1.3.6 Unity項(xiàng)目資源列表 9
1.3.7 Unity屬性查看器 9
1.3.8 Unity狀態(tài)欄與控制臺(tái) 10
1.3.9 菜單欄 10
1.4 本章小結(jié) 14
1.5 習(xí)題 14
第2章 Unity腳本程序基礎(chǔ)知識(shí) 15
2.1 Unity腳本概述 15
2.2 Unity中C#腳本的注意事項(xiàng) 15
2.3 Unity腳本的基礎(chǔ)語(yǔ)法 16
2.3.1 位移與旋轉(zhuǎn) 17
2.3.2 記錄時(shí)間 18
2.3.3 訪問游戲?qū)ο蠼M件 20
2.3.4 訪問其他游戲?qū)ο蟆?1
2.3.5 向量 25
2.3.6 成員變量和全局變量 27
2.3.7 實(shí)例化游戲?qū)ο蟆?8
2.3.8 協(xié)同程序和中斷 29
2.3.9 一些重要的類 30
2.3.10 性能優(yōu)化 34
2.3.11 腳本編譯 35
2.4 本章小結(jié) 36
2.5 習(xí)題 36
第3章 Unity 3D圖形用戶界面
基礎(chǔ) 37
3.1 GUI圖形用戶界面系統(tǒng) 37
3.1.1 Button控件 37
3.1.2 Label控件 40
3.1.3 DrawTexture控件 42
3.1.4 Box控件 44
3.1.5 TextField控件 46
3.1.6 PasswordField控件 48
3.1.7 TextArea控件 50
3.1.8 Toggle控件 51
3.1.9 SelectionGrid控件 53
3.1.10 HorizontalScrollbar控件與
VerticalScrollbar控件 54
3.1.11 BeginGroup容器和EndGroup
容器 56
3.1.12 BeginScrollView控件和
EndScrollView控件 58
3.1.13 Window控件 60
3.1.14 skin皮膚 61
3.1.15 GUI圖形用戶界面的變量 64
3.2 UGUI圖形用戶界面系統(tǒng) 67
3.2.1 UGUI控件的創(chuàng)建及案例 67
3.2.2 Panel控件和Text控件 70
3.2.3 Button控件 72
3.2.4 Image控件和RawImage控件 74
3.2.5 Toggle控件 76
3.2.6 Slider控件和Scrollbar控件 77
3.2.7 InputField控件 79
3.2.8 UGUI布局管理 81
3.2.9 UGUI中不規(guī)則形狀按鈕的碰撞
檢測(cè) 83
3.2.10 Scroll View的制作 86
3.3 預(yù)制件Prefab資源的應(yīng)用 88
3.3.1 預(yù)制件Prefab資源的創(chuàng)建 88
3.3.2 通過Prefab資源進(jìn)而實(shí)例化對(duì)象 89
3.4 常用的輸入對(duì)象 90
3.4.1 Touch輸入對(duì)象 90
3.4.2 Input輸入對(duì)象的主要變量 93
3.4.3 Input輸入對(duì)象的主要方法 94
3.5 與銷毀相關(guān)的方法 96
3.5.1 Object.Destroy方法 96
3.5.2 MonoBehavior.OnDestroy方法 97
3.6 本章小結(jié) 99
3.7 習(xí)題 99
第4章 物理引擎 100
4.1 剛體 100
4.1.1 剛體特性 100
4.1.2 物理管理器 106
4.2 碰撞器 107
4.2.1 碰撞器的添加 108
4.2.2 碰撞過濾 111
4.2.3 物理材質(zhì) 114
4.3 粒子系統(tǒng) 117
4.3.1 粒子系統(tǒng)的創(chuàng)建 117
4.3.2 粒子系統(tǒng)特性 118
4.4 關(guān)節(jié) 121
4.4.1 鉸鏈關(guān)節(jié) 121
4.4.2 固定關(guān)節(jié) 124
4.4.3 彈簧關(guān)節(jié) 126
4.4.4 可配置關(guān)節(jié) 128
4.5 車輪碰撞器 131
4.5.1 車輪碰撞器的創(chuàng)建 131
4.5.2 車輪碰撞器的特性 131
4.6 布料 137
4.7 角色控制器 142
4.7.1 角色控制器的特性 142
4.7.2 角色控制器的應(yīng)用 143
4.8 本章小結(jié) 145
4.9 習(xí)題 146
第5章 著色器編程基礎(chǔ) 147
5.1 初識(shí)著色器 147
5.1.1 著色器概述 147
5.1.2 ShaderLab語(yǔ)法基礎(chǔ) 147
5.2 表面著色器 152
5.2.1 著色器的三種形態(tài) 153
5.2.2 表面著色器基礎(chǔ)知識(shí) 153
5.3 渲染通道的通用指令 159
5.3.1 設(shè)置LOD數(shù)值 160
5.3.2 渲染隊(duì)列 162
5.3.3 Alpha測(cè)試 164
5.3.4 深度測(cè)試 166
5.3.5 通道遮罩 169
5.4 通過表面著色器實(shí)現(xiàn)體積霧 170
5.5 本章小結(jié) 176
5.6 習(xí)題 176
第6章 3D游戲開發(fā)常用技術(shù) 177
6.1 天空盒的應(yīng)用 177
6.1.1 天空盒基礎(chǔ)知識(shí) 177
6.1.2 天空盒案例開發(fā) 179
6.2 3D拾取技術(shù) 182
6.2.1 3D拾取技術(shù)基本知識(shí) 182
6.2.2 3D拾取案例開發(fā) 183
6.3 虛擬搖桿與按鈕的使用 187
6.3.1 下載并導(dǎo)入標(biāo)準(zhǔn)資源包 187
6.3.2 虛擬搖桿與按鈕的案例開發(fā) 189
6.4 加速度傳感器 193
6.5 動(dòng)態(tài)字體 198
6.6 聲音 201
6.6.1 聲音類型和音頻偵聽器 201
6.6.2 音頻源 201
6.6.3 音頻效果 203
6.6.4 案例開發(fā) 205
6.7 霧特效和水特效 209
6.7.1 霧特效和水特效的基礎(chǔ)知識(shí) 210
6.7.2 霧特效和水特效的案例開發(fā) 211
6.8 SQLite數(shù)據(jù)庫(kù) 214
6.8.1 SQLite數(shù)據(jù)庫(kù)的基本知識(shí) 214
6.8.2 SQLite數(shù)據(jù)庫(kù)的案例開發(fā) 215
6.9 本章小結(jié) 219
6.10 習(xí)題 219
第7章 光影效果的使用 220
7.1 光源 220
7.1.1 點(diǎn)光源和定向光源 220
7.1.2 聚光燈光源和區(qū)域光源 222
7.2 光照貼圖的烘焙和使用 224
7.2.1 光照設(shè)置 225
7.2.2 光照烘焙案例 228
7.3 反射探頭 230
7.3.1 反射探頭基本知識(shí) 230
7.3.2 反射探頭案例開發(fā) 233
7.4 法線貼圖 235
7.4.1 法線貼圖的基本知識(shí) 235
7.4.2 在Unity中使用法線貼圖 236
7.5 Unity 3D光照系統(tǒng)中的高級(jí)功能 237
7.5.1 光照系統(tǒng)中的小功能 238
7.5.2 陰影的設(shè)置 242
7.5.3 Light Probes光探頭 244
7.5.4 材質(zhì)編輯器 246
7.6 本章小結(jié) 248
7.7 習(xí)題 248
第8章 模型與動(dòng)畫 249
8.1 3D模型背景知識(shí) 249
8.1.1 主流3D建模軟件的介紹 249
8.1.2 Unity與建模軟件單位的比例關(guān)系 250
8.1.3 將3D模型導(dǎo)入U(xiǎn)nity 250
8.2 網(wǎng)格——Mesh 252
8.2.1 網(wǎng)格過濾器(Mesh Filter) 252
8.2.2 Mesh屬性和方法介紹 252
8.2.3 Mesh的使用 253
8.3 骨骼結(jié)構(gòu)映射——Avatar 259
8.3.1 Avatar的創(chuàng)建 259
8.3.2 Avatar的配置 259
8.3.3 Muscle的配置 261
8.4 動(dòng)畫控制器 263
8.4.1 創(chuàng)建動(dòng)畫控制器 263
8.4.2 動(dòng)畫控制器的配置 263
8.5 角色動(dòng)畫的重定向 269
8.5.1 重定向的原理 269
8.5.2 重定向的應(yīng)用 269
8.6 本章小結(jié) 273
8.7 習(xí)題 273
第9章 地形與尋路技術(shù) 274
9.1 地形引擎 274
9.1.1 地形的創(chuàng)建 274
9.1.2 地形的基本操作 275
9.1.3 地形的紋理添加及參數(shù)設(shè)置 277
9.1.4 高度圖的使用 282
9.2 拖痕渲染器——Trail Renderer 283
9.2.1 拖痕渲染器的基礎(chǔ)知識(shí) 283
9.2.2 剎車痕案例制作 285
9.3 自動(dòng)尋路技術(shù) 289
9.3.1 自動(dòng)尋路技術(shù)基礎(chǔ)知識(shí) 289
9.3.2 小球?qū)ぢ钒咐?92
9.4 本章小結(jié) 295
9.5 習(xí)題 295
第10章 游戲資源更新 296
10.1 初識(shí)AssetBundle 296
10.2 AssetBundle的基本使用 296
10.2.1 AssetBundle的打包 297
10.2.2 下載AssetBundle 299
10.2.3 AssetBundle的加載和卸載 301
10.3 AssetBundle相關(guān)知識(shí) 303
10.3.1 管理依賴 303
10.3.2 儲(chǔ)存和加載二進(jìn)制文件 303
10.3.3 在資源中包含腳本 304
10.4 本章小結(jié) 305
10.5 習(xí)題 305
第11章 網(wǎng)絡(luò)開發(fā)基礎(chǔ) 306
11.1 網(wǎng)絡(luò)類——Network基礎(chǔ) 306
11.1.1 Network類 306
11.1.2 Network View組件 307
11.2 Unity Network開發(fā)案例 308
11.2.1 場(chǎng)景搭建 308
11.2.2 腳本開發(fā) 311
11.2.3 服務(wù)器和客戶端的發(fā)布 316
11.3 本章小結(jié) 317
11.4 習(xí)題 317
第12章 課程設(shè)計(jì)——趣味小球 318
12.1 背景及功能概述 318
12.1.1 游戲背景概述 318
12.1.2 游戲功能簡(jiǎn)介 319
12.2 游戲的策劃及準(zhǔn)備工作 320
12.2.1 游戲的策劃 320
12.2.2 使用Unity 3D開發(fā)游戲前的
準(zhǔn)備工作 320
12.3 游戲的架構(gòu) 322
12.3.1 游戲中各場(chǎng)景的簡(jiǎn)要介紹 322
12.3.2 游戲的架構(gòu)簡(jiǎn)介 323
12.4 游戲場(chǎng)景 324
12.4.1 游戲主菜單場(chǎng)景 324
12.4.2 游戲UI層控制腳本開發(fā) 326
12.4.3 游戲物體運(yùn)動(dòng)控制腳本開發(fā) 329
12.4.4 游戲場(chǎng)景3D拾取和實(shí)例化腳本
開發(fā) 331
12.4.5 輸贏場(chǎng)景開發(fā) 334
12.5 游戲的優(yōu)化與改進(jìn) 337
12.6 本章小結(jié) 337
參考文獻(xiàn) 338