本書基于Unity開發(fā)平臺,詳細(xì)介紹了虛擬現(xiàn)實開發(fā)所必須的基本知識和技能。全書共14章,主要內(nèi)容包括虛擬現(xiàn)實概述、初識Unity、Unity常用組件、腳本基礎(chǔ)、3D數(shù)學(xué)基礎(chǔ)、UGUI界面開發(fā)、物理系統(tǒng)、動畫系統(tǒng)、尋航尋路系統(tǒng)、Unity數(shù)據(jù)持久化技術(shù)、虛擬現(xiàn)實產(chǎn)品開發(fā)、增強(qiáng)現(xiàn)實內(nèi)容開發(fā),以及兩個綜合案例。本書內(nèi)容全面,案例豐富,深入淺出講解虛擬現(xiàn)實開發(fā)技術(shù)。本書適合作為高等院校數(shù)字媒體技術(shù)、數(shù)字媒體藝術(shù)、計算機(jī)科學(xué)與技術(shù)等專業(yè)的教材,也可作為相關(guān)領(lǐng)域從業(yè)者的自學(xué)用書。
1. 本書面向Unity虛擬現(xiàn)實開發(fā)初學(xué)者,將知識點與案例相融合,囊括Unity前沿技術(shù),幫助讀者從0基礎(chǔ)到入門。
2. 本書案例豐富、新穎且富有特色,融入企業(yè)項目元素,具有課堂練習(xí)、實操案例、綜合案例等多種形式,多層次、全方面契合教師教學(xué)需求。
3. 本書配套資源豐富,所有案例都可掃碼觀看視頻講解,對重點難點部分進(jìn)行詳細(xì)解答,還提供微課視頻、源代碼、案例素材、PPT課件等資源
作者吳孝麗,河南城建學(xué)院計算機(jī)與數(shù)據(jù)科學(xué)學(xué)院教師,長期承擔(dān)虛擬現(xiàn)實技術(shù)、C#程序設(shè)計語言、數(shù)據(jù)庫技術(shù)等課程的教學(xué)工作 2. 主編教材《數(shù)據(jù)庫原理及應(yīng)用》,參編教材《ASP.NET程序設(shè)計案例教程》
第 1 章 虛擬現(xiàn)實概述 1
1.1 虛擬現(xiàn)實的基本概念 1
1.2 虛擬現(xiàn)實的發(fā)展歷史 2
1.2.1 虛擬現(xiàn)實的前身 2
1.2.2 虛擬現(xiàn)實的萌芽 2
1.2.3 虛擬現(xiàn)實理論的應(yīng)用 3
1.3 虛擬現(xiàn)實的分類 4
1.3.1 桌面式虛擬現(xiàn)實 4
1.3.2 沉浸式虛擬現(xiàn)實 4
1.3.3 增強(qiáng)式虛擬現(xiàn)實 5
1.3.4 分布式虛擬現(xiàn)實 5
1.4 虛擬現(xiàn)實的應(yīng)用領(lǐng)域 6
1.4.1 教育 6
1.4.2 軍事 7
1.4.3 城市仿真 8
1.4.4 工業(yè) 8
1.4.5 醫(yī)學(xué) 9
1.4.6 科學(xué)計算可視化 10
1.4.7 娛樂 10
1.5 虛擬現(xiàn)實技術(shù)的研究現(xiàn)狀 11
1.5.1 國外的研究現(xiàn)狀 11
1.5.2 國內(nèi)的研究現(xiàn)狀 11
1.6 本章小結(jié) 12
1.7 本章習(xí)題 12
第 2 章 初識 Unity 13
2.1 Unity 的環(huán)境搭建 13
2.1.1 Unity 的下載及安裝 13
2.1.2 Unity Hub 的下載安裝和
許可證激活 14
2.1.3 Visual Studio 的安裝 16
2.1.4 新建工程和工程文件夾 16
2.2 Unity 界面 17
2.2.1 Project 面板 17
2.2.2 Hierarchy 面板 18
2.2.3 Scene 面板 20
2.2.4 工具欄 23
2.2.5 Inspector 面板 24
2.2.6 Game 面板和 Console 面板 25
2.2.7 預(yù)制體資源 27
2.2.8 資源包的導(dǎo)入和導(dǎo)出 29
2.3 實操案例 30
2.4 本章小結(jié) 36
2.5 本章習(xí)題 36
第 3 章 Unity 的常用組件 37
3.1 地形 37
3.1.1 地形的創(chuàng)建 37
3.1.2 地形的基本操作 38
3.1.3 地形的紋理添加及參數(shù)設(shè)置 40
3.2 實時光源 44
3.2.1 平行光 44
3.2.2 點光源 46
3.2.3 聚光燈 47
3.3 烘焙與貼圖 48
3.3.1 光照烘焙 48
3.3.2 反射探針 50
3.3.3 光照探針 51
3.3.4 貼圖 52
3.4 攝像機(jī) 53
3.4.1 Camera 組件中的可編輯
參數(shù) 54
3.4.2 實踐練習(xí)——小地圖的制作 55
3.5 音頻和視頻 58
3.5.1 音頻文件導(dǎo)入 58
3.5.2 音頻源和音頻監(jiān)聽器 58
3.5.3 使用代碼控制音頻源 60
3.5.4 視頻 60
3.6 實操案例 62
3.7 本章小結(jié) 64
3.8 本章習(xí)題 64
第 4 章 腳本基礎(chǔ) 65
4.1 Unity 腳本編輯器 65
4.2 腳本的基礎(chǔ) 66
4.2.1 創(chuàng)建腳本時的注意事項與
項目工程設(shè)計 66
4.2.2 創(chuàng)建腳本 66
4.2.3 更改腳本模板 67
4.3 腳本的常用核心類 68
4.3.1 GameObject 類 68
4.3.2 MonoBehaviour 類 70
4.3.3 Application 類 71
4.3.4 Transform 類 73
4.3.5 Time 類 74
4.4 腳本的生命周期 74
4.4.1 生命周期圖和調(diào)用順序 75
4.4.2 Unity 事件函數(shù) 76
4.5 腳本的綁定、初始化、銷毀
和更新 76
4.6 協(xié)同程序 78
4.6.1 協(xié)同程序的定義與功能 78
4.6.2 協(xié)同程序任務(wù)與停止協(xié)同
程序 79
4.7 多腳本管理 80
4.7.1 腳本的執(zhí)行順序 80
4.7.2 多腳本優(yōu)化 80
4.7.3 單例 81
4.7.4 腳本的調(diào)試 82
4.8 Unity 的其他常用類與輸入
管理器 82
4.8.1 Unity 的其他常用類 82
4.8.2 Unity 輸入管理器 83
4.9 實操案例 85
4.10 本章小結(jié) 90
4.11 本章習(xí)題 90
第 5 章 3D 數(shù)學(xué)基礎(chǔ) 91
5.1 3D 坐標(biāo)系基礎(chǔ) 91
5.1.1 笛卡兒坐標(biāo)系 91
5.1.2 幾種常用坐標(biāo)系 93
5.1.3 坐標(biāo)系之間的轉(zhuǎn)換 93
5.2 向量 94
5.2.1 向量的基本概念 95
5.2.2 向量的運(yùn)算 96
5.3 矩陣 99
5.3.1 矩陣的運(yùn)算 99
5.3.2 特殊矩陣 100
5.4 實操案例 101
5.5 本章小結(jié) 103
5.6 本章習(xí)題 104
第 6 章 UGUI 界面開發(fā) 105
6.1 基礎(chǔ)組件和事件 105
6.1.1 Canvas 組件 105
6.1.2 EventSystem 組件 107
6.1.3 Text 組件 107
6.1.4 Panel 組件 109
6.1.5 Image 組件 109
6.1.6 Button 組件 110
6.1.7 Button 事件 110
6.2 錨點與屏幕自適應(yīng) 111
6.2.1 錨點 111
6.2.2 屏幕自適應(yīng) 112
6.3 UGUI 高級組件 112
6.3.1 Toggle 和 Slider 組件 112
6.3.2 Scrollbar 和 ScrollView 組件 114
6.3.3 實踐練習(xí)——模擬關(guān)卡選擇
界面 114
6.4 使用 UGUI 進(jìn)行布局管理 115
6.5 實操案例 116
6.6 本章小結(jié) 117
6.7 本章習(xí)題 117
第 7 章 物理系統(tǒng) 118
7.1 Rigidbody 組件 118
7.1.1 Rigidbody 組件的使用 118
7.1.2 力的使用 119
7.2 碰撞 120
7.2.1 添加碰撞體組件 120
7.2.2 碰撞檢測 121
7.2.3 觸發(fā)檢測 122
7.3 物理材質(zhì) 124
7.4 Character Controller 組件 125
7.5 射線 127
7.5.1 射線的原理 127
7.5.2 射線碰撞 128
7.6 關(guān)節(jié)組件 129
7.7 物理管理器 131
7.8 實操案例 132
7.9 本章小結(jié) 134
7.10 本章習(xí)題 134
第 8 章 動畫系統(tǒng) 135
8.1 Animation 動畫編輯器 135
8.1.1 舊版動畫的制作 135
8.1.2 新版動畫的制作 139
8.2 外部動畫資源的導(dǎo)入和設(shè)置 139
8.2.1 資源的導(dǎo)入 139
8.2.2 資源的設(shè)置 140
8.3 Mecanim 動畫系統(tǒng) 143
8.3.1 動畫狀態(tài)機(jī) 144
8.3.2 動畫分層和遮罩 147
8.3.3 動畫混合 148
8.3.4 子狀態(tài)機(jī) 152
8.3.5 動畫 IK 控制 153
8.3.6 動畫目標(biāo)匹配 155
8.3.7 狀態(tài)機(jī)行為腳本 157
8.3.8 動畫狀態(tài)機(jī)復(fù)用 159
8.4 實操案例 160
8.5 本章小結(jié) 164
8.6 本章習(xí)題 164
第 9 章 導(dǎo)航尋路功能 165
9.1 基本導(dǎo)航尋路功能 165
9.1.1 導(dǎo)航尋路功能的基礎(chǔ)知識 165
9.1.2 實踐練習(xí)——基本導(dǎo)航
尋路 167
9.2 尋航代理組件 168
9.2.1 斜坡 168
9.2.2 Off Mesh Link 組件 169
9.3 網(wǎng)格分層 170
9.4 導(dǎo)航障礙物 171
9.5 本章小結(jié) 172
9.6 本章習(xí)題 173
第 10 章 Unity 數(shù)據(jù)持久化技術(shù) 174
10.1 PlayerPerfs 持久化技術(shù) 174
10.1.1 數(shù)據(jù)的存取 174
10.1.2 實踐練習(xí)——音量設(shè)置
持久化 175
10.2 JSON 持久化技術(shù) 177
10.2.1 JSON 簡介 177
10.2.2 JSON 的基本語法 177
10.2.3 將 Excel 數(shù)據(jù)轉(zhuǎn)為 JSON
數(shù)據(jù) 179
10.2.4 讀取和存儲 JSON 文件的
兩種方式 180
10.3 實操案例 184
10.4 本章小結(jié) 190
10.5 本章習(xí)題 190
第 11 章 虛擬現(xiàn)實產(chǎn)品的開發(fā) 191
11.1 HTC VIVE 191
11.2 Steam 192
11.2.1 Steam 的下載和安裝 192
11.2.2 創(chuàng)建 Steam 賬戶 193
11.3 SteamVR Plugin 194
11.3.1 SteamVR Plugin 的導(dǎo)入 194
11.3.2 SteamVR Plugin 的操作 196
11.4 實操案例 199
11.5 本章小結(jié) 215
11.6 本章習(xí)題 215
第 12 章 增強(qiáng)現(xiàn)實產(chǎn)品的開發(fā) 216
12.1 增強(qiáng)現(xiàn)實工具 216
12.1.1 Vuforia 216
12.1.2 ARKit 217
12.1.3 ARCore 217
12.1.4 AR Foundation 217
12.1.5 EasyAR 218
12.1.6 VoidAR 218
12.1.7 AR SDK 小結(jié) 219
12.2 Web AR 219
12.2.1 WebAR 219
12.2.2 KiviSense 在線 AR 制作
引擎 220
12.3 實操案例 223
12.3.1 圖像追蹤識別技術(shù) 223
12.3.2 物體追蹤識別技術(shù) 228
12.4 本章小結(jié) 229
12.5 本章習(xí)題 229
第 13 章 綜合案例——使用 VDP
進(jìn)行開發(fā) 230
13.1 VDP 簡介 230
13.1.1 基本介紹 230
13.1.2 適用范圍 231
13.2 使用 VDP 前的準(zhǔn)備 231
13.2.1 安裝軟件 231
13.2.2 授權(quán) Unity 許可證 231
13.2.3 登錄 VDP 231
13.3 使用 VDP 制作資源 232
13.3.1 制作后臺的界面簡介 232
13.3.2 處理模型 233
13.3.3 導(dǎo)入模型 233
13.3.4 處理模型效果 234
13.3.5 實現(xiàn)簡易 VR 交互 235
13.3.6 發(fā)布效果圖、渲染視頻、
全景圖 237
13.3.7 使用 VDP 發(fā)布資源 239
13.4 本章小結(jié) 240
13.5 本章習(xí)題 240
第 14 章 綜合案例——畢業(yè)設(shè)計
展覽系統(tǒng)開發(fā) 241
14.1 畢業(yè)設(shè)計展覽系統(tǒng)簡介 241
14.2 項目開發(fā)過程 242
14.2.1 項目創(chuàng)建及場景的導(dǎo)入 242
14.2.2 開始場景功能的實現(xiàn) 242
14.2.3 主場景功能的實現(xiàn) 244
14.3 本章小結(jié) 250
14.4 本章習(xí)題 250