內(nèi) 容 提 要
本書作者結(jié)合多年從事游戲應(yīng)用開發(fā)的經(jīng)驗,詳細(xì)介紹了8款Unity 3D游戲案例的開發(fā)。
本書主要內(nèi)容包括Unity 3D的基礎(chǔ)知識、開發(fā)環(huán)境的搭建及其運行機制,益智休閑類游戲、3D塔防類游戲、3D桌球類游戲、射擊類游戲、第三人稱射擊類游戲、休閑體育類游戲、VR休閑競技類游戲、多人在線角色扮演游戲的開發(fā)。
本書適合有一定基礎(chǔ)、有志于游戲開發(fā)的讀者學(xué)習(xí),也可以作為相關(guān)培訓(xùn)學(xué)校和大專院校相關(guān)專業(yè)的教學(xué)用書。
本書內(nèi)容覆蓋了從學(xué)習(xí)Unity 3D必知必會的基礎(chǔ)知識,到基于著色器語言所實現(xiàn)的特效
隨書資源中包含了書中所有案例的完整源代碼,讀者可以直接導(dǎo)入運行,幫助讀者快速掌握開發(fā)技術(shù)。
書中9個綜合案例,既包括單機版的游戲項目,也有網(wǎng)絡(luò)對戰(zhàn)游戲的項目案例;既包括2D畫面呈現(xiàn)的游戲案例,也包括3D呈現(xiàn)的游戲案例
吳亞峰,畢業(yè)于北京郵電大學(xué),后留學(xué)澳大利亞臥龍崗大學(xué)取得碩士學(xué)位。1998年開始從事Java應(yīng)用的開發(fā),有10多年的Java開發(fā)與培訓(xùn)經(jīng)驗。目前主要的研究方向為OpenGL ES、Vulkan、VR/AR、手機游戲。同時為手機游戲、OpenGL ES獨立軟件開發(fā)工程師,現(xiàn)任職于華北理工大學(xué)并兼任華北理工大學(xué)以升大學(xué)生創(chuàng)新實驗中心移動及互聯(lián)網(wǎng)軟件工作室負(fù)責(zé)人。十多年來不但多次指導(dǎo)學(xué)生制作手游作品獲得多項學(xué)科競賽大獎,還為數(shù)十家企業(yè)培養(yǎng)了上千名軟件開發(fā)人員。曾編寫過《OpenGL ES 3.x游戲開發(fā)(上下卷)》《Unity3D游戲開發(fā)標(biāo)準(zhǔn)教程》《Unity 5.x 3D游戲開發(fā)技術(shù)詳解與典型案例》《Unity 4 3D開發(fā)實戰(zhàn)詳解》、《Android應(yīng)用案例開發(fā)大全》(第一版至第四版)、《Android游戲開發(fā)大全》(第一版至第四版)等多本暢銷技術(shù)書籍。2008年初開始關(guān)注Android平臺下的3D應(yīng)用開發(fā),并開發(fā)出一系列的Android應(yīng)用程序與3D游戲。
目 錄
第 1章 Unity 3D基礎(chǔ)和開發(fā)環(huán)境的搭建 1
1.1 Unity 3D基礎(chǔ)知識概覽 1
1.1.1 初識Unity 3D 1
1.1.2 Unity的誕生及其發(fā)展 1
1.1.3 Unity 3D廣闊的市場前景 2
1.1.4 獨具特色的Unity 3D 3
1.2 開發(fā)環(huán)境的搭建 8
1.2.1 Unity集成開發(fā)環(huán)境的安裝 8
1.2.2 目標(biāo)平臺的SDK與Unity 3D的
集成 11
1.3 本書案例的導(dǎo)入及運行 13
1.4 本章小結(jié) 15
第 2章 益智休閑類游戲——火車行動 16
2.1 游戲的開發(fā)背景和功能概述 16
2.1.1 游戲背景簡介 16
2.1.2 游戲功能簡介 17
2.2 游戲的策劃和準(zhǔn)備工作 18
2.2.1 游戲的策劃 18
2.2.2 使用Unity開發(fā)游戲前的準(zhǔn)備
工作 19
2.3 游戲的架構(gòu) 21
2.3.1 各個場景的簡要介紹 21
2.3.2 游戲架構(gòu)簡介 22
2.4 主菜單場景 22
2.4.1 場景的搭建及相關(guān)設(shè)置 22
2.4.2 各對象的腳本開發(fā)及相關(guān)
設(shè)置 27
2.5 游戲場景 33
2.5.1 關(guān)卡一游戲場景搭建 33
2.5.2 游戲模型設(shè)置及腳本開發(fā) 37
2.5.3 游戲UI層的開發(fā) 45
2.5.4 關(guān)卡二游戲場景搭建 48
2.6 游戲的優(yōu)化與改進 50
2.7 本章小結(jié) 50
第3章 3D塔防類游戲——BN塔防 51
3.1 游戲的開發(fā)背景和功能概述 51
3.1.1 游戲背景簡介 51
3.1.2 游戲功能簡介 52
3.2 游戲的策劃和準(zhǔn)備工作 54
3.2.1 游戲的策劃 54
3.2.2 使用Unity開發(fā)游戲前的準(zhǔn)備
工作 55
3.3 游戲的架構(gòu) 58
3.3.1 各個場景簡介 59
3.3.2 游戲架構(gòu)簡介 59
3.4 玩家設(shè)置場景的開發(fā) 61
3.4.1 場景的搭建及其相關(guān)設(shè)置 61
3.4.2 各對象的腳本開發(fā)及其相關(guān)
設(shè)置 64
3.5 游戲功能場景的開發(fā) 69
3.5.1 場景搭建及其相關(guān)設(shè)置 70
3.5.2 各對象的腳本開發(fā)及相關(guān)設(shè)置 71
3.6 屬性介紹場景的開發(fā) 74
3.6.1 英雄屬性介紹界面搭建 74
3.6.2 怪物屬性介紹界面搭建 75
3.6.3 英雄以及怪物模型創(chuàng)建 76
3.6.4 各對象的腳本開發(fā)及相關(guān)設(shè)置 77
3.7 選關(guān)場景的開發(fā) 81
3.7.1 場景的搭建及其相關(guān)設(shè)置 81
3.7.2 各對象的腳本開發(fā)及相關(guān)
設(shè)置 82
3.8 關(guān)卡場景的開發(fā) 83
3.8.1 場景地形的制作 83
3.8.2 攝像機的移動和縮放功能的
開發(fā) 85
3.8.3 敵人相關(guān)功能的開發(fā) 87
3.8.4 防御塔功能的開發(fā) 93
3.8.5 英雄相關(guān)功能的開發(fā) 96
3.8.6 技能的開發(fā) 99
3.8.7 創(chuàng)建聲音管理器 100
3.8.8 場景UI的制作與相關(guān)腳本的
開發(fā) 101
3.8.9 創(chuàng)建游戲控制器 104
3.9 游戲的優(yōu)化與改進 106
第4章 3D極品桌球 107
4.1 游戲背景和功能概述 107
4.1.1 游戲背景簡介 107
4.1.2 游戲功能簡介 107
4.2 游戲的策劃和準(zhǔn)備工作 110
4.2.1 游戲的策劃 110
4.2.2 使用Unity開發(fā)游戲前的
準(zhǔn)備工作 110
4.3 游戲的架構(gòu) 112
4.3.1 各個場景簡介 112
4.3.2 游戲框架簡介 113
4.4 主菜單界面 114
4.4.1 項目的基本創(chuàng)建 114
4.4.2 腳本的編寫與掛載 115
4.5 游戲界面 128
4.5.1 場景的搭建 128
4.5.2 多視角的制作與切換 131
4.5.3 游戲界面腳本的編寫 134
4.5.4 功能腳本的編寫 141
4.6 游戲的優(yōu)化與改進 154
第5章 射擊類游戲——固守陣線 155
5.1 游戲背景和功能概述 155
5.1.1 游戲背景簡介 155
5.1.2 游戲功能簡介 155
5.2 游戲的策劃及準(zhǔn)備工作 158
5.2.1 游戲的策劃 158
5.2.2 使用Unity開發(fā)游戲前的
準(zhǔn)備工作 159
5.3 游戲的架構(gòu) 161
5.3.1 各個場景簡介 161
5.3.2 游戲架構(gòu)簡介 162
5.4 主菜單場景 162
5.4.1 場景搭建 163
5.4.2 主攝像機設(shè)置及腳本開發(fā) 164
5.4.3 主菜單場景中各個界面移動的
實現(xiàn) 170
5.5 游戲場景 171
5.5.1 場景搭建 171
5.5.2 主攝像機設(shè)置及腳本開發(fā) 172
5.5.3 操作界面的創(chuàng)建 173
5.5.4 子彈的創(chuàng)建 177
5.5.5 敵人小兵的創(chuàng)建及腳本開發(fā) 179
5.5.6 場景中結(jié)點的設(shè)置與腳本
開發(fā) 181
5.5.7 敵人裝甲車的創(chuàng)建與腳本
開發(fā) 182
5.5.8 敵人坦克的創(chuàng)建與腳本
開發(fā) 186
5.5.9 小地圖的制作 188
5.6 游戲的優(yōu)化與改進 189
第6章 第三人稱射擊類游戲——海島危機 190
6.1 游戲背景和功能概述 190
6.1.1 游戲背景簡介 190
6.1.2 游戲功能簡介 191
6.2 游戲的策劃及準(zhǔn)備工作 193
6.2.1 游戲的策劃 193
6.2.2 使用Unity開發(fā)游戲前的
準(zhǔn)備工作 194
6.3 游戲的架構(gòu) 197
6.3.1 各個場景簡介 197
6.3.2 游戲架構(gòu)簡介 198
6.4 閃屏和主菜單場景 200
6.4.1 閃屏場景的搭建與腳本
開發(fā) 200
6.4.2 常量類與簡單游戲保存功能的
開發(fā) 203
6.4.3 主菜單場景基本UI的搭建與
腳本開發(fā) 204
6.4.4 選擇關(guān)卡界面的搭建與腳本
開發(fā) 207
6.4.5 信息提示界面的搭建與腳本
開發(fā) 211
6.4.6 其他部分的搭建 212
6.5 游戲加載場景 214
6.5.1 場景搭建 214
6.5.2 異步加載場景功能的實現(xiàn)與
腳本開發(fā) 214
6.6 關(guān)卡一游戲場景 215
6.6.1 場景搭建 215
6.6.2 主人物模型的搭建及
腳本開發(fā) 216
6.6.3 虛擬搖桿和攝像機跟隨功能及
腳本開發(fā) 221
6.6.4 游戲提示界面的搭建及
腳本開發(fā) 225
6.6.5 任務(wù)系統(tǒng)和觸發(fā)器的搭建及
腳本開發(fā) 226
6.6.6 準(zhǔn)星和準(zhǔn)星提示信息的搭建及
腳本開發(fā) 228
6.6.7 郵件界面的搭建及其功能的
腳本開發(fā) 230
6.7 其他游戲場景 232
6.7.1 游戲CG功能的實現(xiàn)及
腳本開發(fā) 232
6.7.2 血條和小地圖功能及
腳本開發(fā) 233
6.7.3 怪物的創(chuàng)建及腳本開發(fā) 236
6.7.4 船和直升飛機的搭建及
腳本開發(fā) 239
6.8 游戲的優(yōu)化與改進 241
第7章 休閑體育類游戲——指尖網(wǎng)球 243
7.1 游戲背景和功能概述 243
7.1.1 游戲背景簡介 243
7.1.2 游戲功能簡介 244
7.2 游戲的策劃及準(zhǔn)備工作 245
7.2.1 游戲的策劃 245
7.2.2 使用Unity開發(fā)游戲前的
準(zhǔn)備工作 246
7.3 游戲的架構(gòu) 248
7.3.1 各個場景簡介 248
7.3.2 游戲架構(gòu)簡介 249
7.4 主菜單場景 250
7.4.1 場景的搭建及其相關(guān)設(shè)置 250
7.4.2 各對象的腳本開發(fā)及
相關(guān)設(shè)置 254
7.5 單人模式游戲場景 264
7.5.1 場景搭建 264
7.5.2 各對象的腳本開發(fā)及
相關(guān)設(shè)置 265
7.6 網(wǎng)絡(luò)模式游戲場景 283
7.6.1 場景搭建 283
7.6.2 各對象的腳本開發(fā)及
相關(guān)設(shè)置 283
7.7 服務(wù)器端的開發(fā) 288
7.7.1 網(wǎng)絡(luò)游戲架構(gòu)簡介 288
7.7.2 服務(wù)器端簡介 289
7.7.3 服務(wù)器端的開發(fā) 289
7.8 游戲加載場景 290
7.8.1 場景搭建 290
7.8.2 各對象的腳本開發(fā)及
相關(guān)設(shè)置 291
7.9 游戲的優(yōu)化與改進 292
第8章 VR休閑競技類游戲——Q賽車 293
8.1 游戲背景和功能概述 293
8.1.1 游戲背景簡介 293
8.1.2 游戲功能簡介 293
8.2 游戲的策劃及準(zhǔn)備工作 295
8.2.1 游戲的策劃 295
8.2.2 使用Unity開發(fā)游戲前的
準(zhǔn)備工作 296
8.3 游戲的架構(gòu) 297
8.3.1 各個場景的簡介 297
8.3.2 游戲架構(gòu)簡介 297
8.4 主菜單場景 298
8.4.1 場景的搭建及其相關(guān)設(shè)置 298
8.4.2 Gvr Unity SDK下載及使用
介紹 300
8.4.3 腳本開發(fā)及相關(guān)設(shè)置 302
8.5 單人模式游戲場景 305
8.5.1 場景搭建 305
8.5.2 游戲場景的初始化腳本 307
8.5.3 賽車控制腳本及其相關(guān)設(shè)置 308
8.5.4 攝像機控制及暫停腳本開發(fā) 309
8.5.5 游戲輸贏腳本開發(fā) 311
8.5.6 游戲UI對象腳本開發(fā) 314
8.5.7 游戲常量類腳本開發(fā) 314
8.6 網(wǎng)絡(luò)模式游戲場景 315
8.6.1 場景搭建 315
8.6.2 腳本開發(fā)及相關(guān)設(shè)置 315
8.7 服務(wù)器端的開發(fā) 319
8.7.1 網(wǎng)絡(luò)游戲架構(gòu)簡介 319
8.7.2 服務(wù)器端簡介 320
8.7.3 服務(wù)器端的開發(fā) 320
8.8 游戲的優(yōu)化與改進 322
第9章 多人在線角色扮演游戲——
英雄傳說 323
9.1 游戲背景和功能概述 323
9.1.1 游戲背景簡介 323
9.1.2 游戲功能簡介 323
9.2 游戲的策劃及準(zhǔn)備工作 326
9.2.1 游戲的策劃 326
9.2.2 游戲前的準(zhǔn)備工作 327
9.3 游戲的架構(gòu) 333
9.4 網(wǎng)絡(luò)游戲服務(wù)器概述 334
9.4.1 什么是游戲服務(wù)器 334
9.4.2 服務(wù)器結(jié)構(gòu) 334
9.4.3 序列化協(xié)議簡介 335
9.4.4 Protocol Buffer的使用 336
9.4.5 游戲服務(wù)器的整體架構(gòu) 338
9.5 游戲服務(wù)器線程類詳解 338
9.5.1 服務(wù)器主線程類——
ServerThread 339
9.5.2 服務(wù)器代理線程類——
ServerAgentThread 339
9.5.3 操作碼處理類——
OPCodeHandler 343
9.5.4 登錄和選人線程類——LogInThread和ChooseRoleThread 344
9.5.5 游戲主場景線程類——
MainMapThread 345
9.5.6 副本線程類——
DungeonMapThread 347
9.6 游戲服務(wù)器動作類詳解 351
9.6.1 所有動作的父類——Action 352
9.6.2 登錄動作類——LogInAction 352
9.6.3 創(chuàng)建角色動作類——
CreateRoleAction 353
9.6.4 選擇角色動作類——
ChooseRoleResultAction 354
9.6.5 更新角色信息動作類——
UpdateRoleDataAction 355
9.6.6 返回主城動作類——
BackTOMainMapAction 356
9.6.7 同步動畫動作類——
BroadCastStateAction 357
9.6.8 創(chuàng)建副本動作類——
CreateDungeonAction 357
9.7 登錄場景及加載場景的搭建 358
9.7.1 登錄場景的搭建及相關(guān)設(shè)置 359
9.7.2 加載界面場景的搭建 366
9.8 客戶端與服務(wù)器的連接 367
9.9 選人場景的搭建 373
9.9.1 選人3D場景的搭建 373
9.9.2 UI的開發(fā) 378
9.10 主城場景的搭建開發(fā) 384
9.10.1 主城中角色移動及NPC功能的
開發(fā) 384
9.10.2 主城場景UI的開發(fā) 389
9.10.3 組隊功能的實現(xiàn) 392
9.11 副本場景功能的開發(fā) 393
9.12 自動尋路系統(tǒng) 396
9.12.1 地圖信息標(biāo)記點 397
9.12.2 自動尋路代碼 399
9.12.3 Java與Lua的交互 403
9.13 游戲AI開發(fā) 406
9.13.1 服務(wù)器端AI開發(fā) 406
9.13.2 客戶端AI開發(fā) 412
9.14 游戲的優(yōu)化與改進 418
9.15 本章小結(jié) 418