Unity AR/VR開發(fā):實戰(zhàn)高手訓(xùn)練營
定 價:109 元
叢書名:游戲開發(fā)與設(shè)計技術(shù)叢書
- 作者:王寒,張義紅,王少笛
- 出版時間:2021/7/1
- ISBN:9787111684992
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP317.6
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
全書內(nèi)容分為三篇。
1.入門篇,針對完全沒有任何Unity開發(fā)經(jīng)驗的開發(fā)者。
學(xué)完本部分內(nèi)容后,開發(fā)者應(yīng)該對Unity的基本知識有所了解,包括常見3D引擎的對比分析以及Unity的基本使用。
2.進階篇,涵蓋AR/VR開發(fā)所必須掌握的Unity3d技能以及一個綜合實戰(zhàn)案例。
3.高級篇,主要通過實戰(zhàn)案例的開發(fā)學(xué)習(xí)來掌握各種主流AR/VR設(shè)備平臺的知識和技能。
學(xué)完本部分內(nèi)容后,開發(fā)者應(yīng)對主流的AR/VR設(shè)備平臺及其開發(fā)工具有充分的了解和認識。
與此同時,開發(fā)者還應(yīng)通過實戰(zhàn)項目熟練掌握幾個主流AR/VR設(shè)備平臺的開發(fā)知識,如HTC Vive,Oculus Quest,Valve Index、Google Glass、Magic Leap、Noitom動作捕捉系統(tǒng)和微軟HoloLens平臺等。
此外,開發(fā)者還需要掌握主流的AR開發(fā)SDK,特別是使用Vuforia SDK和AR Foundation(支持ARKit/ARCore)開發(fā)AR應(yīng)用。
2014年3月,F(xiàn)acebook宣布以20億美元收購虛擬現(xiàn)實設(shè)備Oculus Rift的制造商Oculus VR,沉寂已久的虛擬現(xiàn)實行業(yè)重新進入人們的視野。
2015年1月,微軟黑科技產(chǎn)品MR(混合現(xiàn)實)頭顯HoloLens與Windows 10系統(tǒng)同時發(fā)布。
在2017年6月的WWDC上,蘋果重磅推出了ARKit,這讓iOS一夜之間成為的AR平臺,更讓虛擬現(xiàn)實進入更多開發(fā)者的視野。同年在Google I/O大會上,Google推出了與ARKit對標的ARCore,這延續(xù)了智能手機時代的激烈競爭態(tài)勢。
在接下來的幾年,因為相關(guān)技術(shù)發(fā)展的滯后,虛擬現(xiàn)實行業(yè)陷入了長達三年的暗黑時代。
但進入2020年之后,5G技術(shù)在全球,特別是在中國得到了廣泛的應(yīng)用。作為5G技術(shù)的應(yīng)用場景之一,AR/VR內(nèi)容的需求再次爆發(fā),這也讓該行業(yè)的從業(yè)人員為之一振。以蘋果為首的眾多科技公司在這一領(lǐng)域的技術(shù)耕耘終于得到了回報。iPad Pro和iPhone 12 Pro系列中均搭配了全新的LiDAR激光掃描雷達,其他國內(nèi)外廠商也紛紛跟進。5G和激光掃描技術(shù)的迅速商用讓虛擬現(xiàn)實行業(yè)走出陰霾,迎來春天的黎明。
為什么要寫這本書
隨著越來越多的大公司和創(chuàng)業(yè)團隊進入AR/VR領(lǐng)域,他們對AR/VR開發(fā)人才的需求也越來越大。
在面向AR/VR的開發(fā)工具中,Unity3D無疑是目前支持平臺廣、擴展性強的一款工具。
無論有無Unity開發(fā)經(jīng)驗,開發(fā)者都迫切需要一本Unity AR/VR書帶領(lǐng)他們跨過道坎,從而真正了解和掌握AR/VR開發(fā)。
本書涵蓋Unity3D的基礎(chǔ)入門知識、進行AR/VR開發(fā)必須掌握的Unity3D技能以及在不同的AR/VR平臺進行實際開發(fā)所需要掌握的知識。
與《Unity AR/VR開發(fā):從新手到專家》的區(qū)別
本書在《Unity AR/VR開發(fā):從新手到專家》(以下簡稱為《從新手到專家》)的基礎(chǔ)上做了不小的更新和調(diào)整。
1)考慮到本書讀者的主要興趣點在于學(xué)習(xí)AR/VR開發(fā),因此對Unity基礎(chǔ)技能的內(nèi)容適當做了刪減和優(yōu)化,以突出全書的重點。比如將《從新手到專家》中第4~6章的內(nèi)容合并為一章,刪減了第12章(數(shù)據(jù)存取與性能優(yōu)化)和第14章(Unity網(wǎng)絡(luò)編程)。
2)考慮到市場中AR/VR開發(fā)的巨大變化,刪除了《從新手到專家》中的第15章(跨HTC Vive和Oculus Rift平臺開發(fā))、第16章(Google Daydream平臺開發(fā))、第18章(Wikitude AR開發(fā))、第19章(HoloLens開發(fā)),新增了第10章(實戰(zhàn):基于Oculus Quest設(shè)備的Beat Music音樂節(jié)奏游戲)、第11章(實戰(zhàn):使用動捕技術(shù)實現(xiàn)虛擬直播)、第13章(實戰(zhàn):使用AR Foundation開發(fā)跨平臺AR塔防游戲)和第14章(實戰(zhàn):開發(fā)AR汽車引擎教育應(yīng)用)等內(nèi)容。
3)縮減了Unity基礎(chǔ)和核心技能章節(jié)中的綜合實戰(zhàn)案例,增加并擴展了AR/VR開發(fā)章節(jié)中的實戰(zhàn)案例。
4)《從新手到專家》的內(nèi)容基于Unity 2018.x版本,本書的內(nèi)容則大部分基于Unity 2020.x版本,部分AR/VR章節(jié)則基于Unity 2019.4.x(LTS)版本。
在內(nèi)容設(shè)計上,本書希望讀者在掌握Unity的核心技能后,能快速進入對AR/VR理論和實戰(zhàn)技能的學(xué)習(xí),從而掌握在不同AR/VR平臺上設(shè)計、開發(fā)產(chǎn)品的知識和技能。
本書特色
目前,市面上有關(guān)AR/VR開發(fā)的圖書相對較少,現(xiàn)有的圖書主要針對有經(jīng)驗的開發(fā)者,而本書的內(nèi)容對于零基礎(chǔ)的開發(fā)者也十分友好,從基礎(chǔ)概念到使用Unity進行AR/VR開發(fā),書中都有介紹。
與只重視概念講解,不重視實際操作的Unity開發(fā)圖書不同,本書從基本知識到進階技能再到AR/VR實戰(zhàn)開發(fā),每一部分都會融入大量的實戰(zhàn)講解。
有經(jīng)驗的Unity開發(fā)者可以直接學(xué)習(xí)AR/VR實戰(zhàn)項目的相關(guān)內(nèi)容。針對Oculus Quest、Vuforia、AR Foundation(涵蓋ARKit/ARCore)、全身動捕技術(shù)平臺、VoxelSense等幾個主流的AR/VR平臺和SDK,本書都會通過實戰(zhàn)項目進行講解。
讀者對象
本書適合以下人員閱讀:
對AR/VR開發(fā)感興趣,但是之前并沒有任何Unity3D開發(fā)經(jīng)驗的初學(xué)者。
對AR/VR開發(fā)感興趣,并且已經(jīng)具備一定Unity3D開發(fā)經(jīng)驗的開發(fā)者。
對AR/VR開發(fā)感興趣,想了解項目開發(fā)整體流程的管理者或團隊成員。
如何閱讀本書
全書從邏輯上分為三部分,共14章。
部分介紹的是Unity開發(fā)基礎(chǔ)知識(第1~3章),針對所有對虛擬現(xiàn)實和Unity開發(fā)感興趣的初學(xué)者。
學(xué)完本部分內(nèi)容后,讀者應(yīng)該對虛擬現(xiàn)實行業(yè)、技術(shù)基礎(chǔ)、產(chǎn)品及開發(fā)工具有所了解,包括虛擬現(xiàn)實的基本概念、虛擬現(xiàn)實的技術(shù)基礎(chǔ)、主流的虛擬現(xiàn)實設(shè)備、主流的虛擬現(xiàn)實開發(fā)工具等。
此外,讀者還應(yīng)該對Unity的基本知識有所了解,包括常見的3D引擎以及Unity的基本使用,比如界面、基本概念(物體、組件等)、C#編程。
第1章 對虛擬現(xiàn)實行業(yè)做了提綱挈領(lǐng)的介紹,從整體的角度介紹了虛擬現(xiàn)實的相關(guān)概念以及核心技術(shù),即立體顯示技術(shù)、場景建模技術(shù)和自然交互技術(shù)。此外,還介紹了當前主流的虛擬現(xiàn)實設(shè)備、開發(fā)工具和SDK以及虛擬現(xiàn)實應(yīng)用開發(fā)的基本流程與注意事項。
第2章 對主流的3D游戲引擎進行對比分析,說明使用Unity進行AR/VR開發(fā)的優(yōu)缺點,并簡單介紹Unity的發(fā)展史、安裝、授權(quán)與服務(wù)。此外,還對Unity的編輯器做了簡單介紹,并著重介紹了Unity中的核心概念、
前言
部分 Unity開發(fā)基礎(chǔ)知識
第1章 虛擬現(xiàn)實開發(fā)技術(shù)入門2
1.1 什么是虛擬現(xiàn)實2
1.2 虛擬現(xiàn)實的技術(shù)基礎(chǔ)3
1.2.1 立體顯示技術(shù)4
1.2.2 3D建模技術(shù)5
1.2.3 自然交互技術(shù)6
1.3 主流的虛擬現(xiàn)實設(shè)備7
1.3.1 Oculus 系列8
1.3.2 HTC VIVE系列9
1.3.3 Sony PlayStation VR11
1.3.4 其他VR設(shè)備12
1.3.5 Microsoft HoloLens12
1.3.6 AR眼鏡設(shè)備12
1.4 主流的虛擬現(xiàn)實開發(fā)工具13
1.4.1 虛擬現(xiàn)實開發(fā)平臺簡介13
1.4.2 第三方工具和SDK14
1.5 虛擬現(xiàn)實應(yīng)用開發(fā)的基本流程和注意事項16
1.5.1 基本流程16
1.5.2 注意事項18
1.6 本章小結(jié)19
第2章 你人生的款Unity3D游戲20
2.1 常用3D游戲引擎介紹20
2.1.1 什么是游戲引擎20
2.1.2 游戲引擎架構(gòu)基礎(chǔ)21
2.1.3 主流3D引擎對比分析28
2.2 Unity的授權(quán)、服務(wù)與安裝29
2.2.1 Unity的授權(quán)類型和服務(wù)29
2.2.2 Unity的安裝29
2.3 Unity編輯器入門34
2.3.1 界面布局34
2.3.2 Unity的工具欄38
2.3.3 頂部菜單欄41
2.4 Unity3D中的核心概念43
2.4.1 場景43
2.4.2 游戲?qū)ο?4
2.4.3 組件44
2.4.4 預(yù)設(shè)體45
2.5 實戰(zhàn)項目:《夢幻天堂》游戲的設(shè)計與實現(xiàn)45
2.5.1 《夢幻天堂》的策劃與設(shè)計45
2.5.2 創(chuàng)建一個新項目46
2.5.3 搭建游戲場景47
2.5.4 添加游戲角色50
2.5.5 預(yù)覽游戲效果52
2.5.6 在Windows平臺編譯運行52
2.5.7 在Android平臺編譯運行53
2.5.8 在iOS平臺編譯運行55
2.6 本章小結(jié) 56
第3章 無往不利:在Unity中使用C#進行編程57
3.1 游戲腳本語言概述57
3.1.1 游戲腳本語言的誕生57
3.1.2 Unity3D所使用的腳本語言58
3.1.3 C#的開發(fā)環(huán)境58
3.2 C#的基本語法和使用58
3.2.1 變量和數(shù)據(jù)類型58
3.2.2 表達式與運算符61
3.2.3 流程控制68
3.2.4 函數(shù)71
3.2.5 類、對象和方法74
3.3 Unity的腳本系統(tǒng)77
3.3.1 創(chuàng)建腳本77
3.3.2 事件函數(shù)79
3.4 本章小結(jié)82
第二部分 Unity開發(fā)核心技能
第4章 創(chuàng)建一個虛擬的新世界84
4.1 創(chuàng)建基礎(chǔ)的游戲場景84
4.1.1 Unity中的地形引擎84
4.1.2 基本幾何體的使用92
4.1.3 添加天空盒93
4.2 創(chuàng)建Unity之外的游戲資源94
4.2.1 3D模型、材質(zhì)和動畫的創(chuàng)建工具94
4.2.2 音效創(chuàng)建工具97
4.2.3 其他資源創(chuàng)建工具98
4.3 導(dǎo)入外部的游戲資源98
4.3.1 2D圖像文件的導(dǎo)入和設(shè)置99
4.3.2 3D模型的導(dǎo)入和設(shè)置99
4.3.3 3D動畫的導(dǎo)入和設(shè)置100
4.3.4 音頻和視頻的導(dǎo)入和設(shè)置101
4.3.5 Unity資源包的導(dǎo)入和導(dǎo)出101
4.4 Unity光照系統(tǒng)102
4.4.1 燈光組件簡介103
4.4.2 常見的光源類型103
4.4.3 燈光組件屬性簡介105
4.4.4 全局光照109
4.4.5 烘焙109
4.4.6 Lightmap的使用111
4.4.7 Light Probe的使用112
4.4.8 Reection Probe的使用114
4.5 粒子系統(tǒng)117
4.5.1 粒子系統(tǒng)簡介117
4.5.2 Shuriken粒子系統(tǒng)118
4.6 著色器120
4.6.1 著色器簡介120
4.6.2 Unity中的標準著色器121
4.6.3 創(chuàng)建自定義的著色器129
4.6.4 Shader Graph133
4.7 后期處理135
4.7.1 Post Processing簡介135
4.7.2 如何在Unity項目中添加Post Processing136
4.8 本章小結(jié)140
第5章 游戲中的UI系統(tǒng)141
5.1 Unity中的UI系統(tǒng)簡介141
5.2 UGUI中的靜態(tài)視覺元素142
5.2.1 Canvas142
5.2.2 Image144
5.2.3 Text147
5.2.4 TextMeshPro148
5.3 交互UI對象149
5.3.1 Button 150
5.3.2 Toggle154
5.3.3 Slider156
5.3.4 其他交互控件159
5.4 本章小結(jié)159
第6章 讓角色活靈活現(xiàn):Unity中的動畫系統(tǒng)160
6.1 Unity動畫系統(tǒng)概述160
6.2 Legacy動畫系統(tǒng)概覽160
6.3 Mecanim動畫系統(tǒng)概覽161
6.3.1 Mecanim動畫系統(tǒng)的特性161
6.3.2 Mecanim動畫系統(tǒng)中的核心概念161
6.3.3 Blend Tree163
6.3.4 Retarget和Avatar164
6.3.5 Mecanim動畫系統(tǒng)的工作流程164
6.4 Mecanim動畫系統(tǒng)的使用165
6.5 本章小結(jié)170
第7章 簡單的游戲AI:Nav Mesh尋路系統(tǒng)171
7.1 Unity尋路系統(tǒng)概述171
7.2 Nav Mesh烘焙設(shè)置175
7.3 添加障礙物:Nav Mesh Obstacle179
7.4 穿越障礙物:Off Mesh Link180
7.5 本章小結(jié)181
第8章 真實世界的法則:物理引擎182
8.1 物理引擎概述182
8.2 Unity物理引擎的核心構(gòu)成183
8.2.1 Rigidbody183
8.2.2 Collider189
8.2.3 Raycast196
8.3 本章小結(jié)198
第9章 且聽風(fēng)吟:音樂和音效199
9.1 Unity Audio系統(tǒng)概述199
9.2 Audio Source200
9.2.1 Aud