Unity3D是一款跨平臺3D、2D游戲及互動內(nèi)容開發(fā)引擎,并有著廣泛的影響力。隨著近年增強現(xiàn)實和虛擬現(xiàn)實的興起,很多增強現(xiàn)實和虛擬現(xiàn)實的技術(shù)提供方都提供了基于Unity3D的SDK包?梢灶A(yù)見,市場對Unity3D人才的需求將會大大增加。
本書共分為14章,詳細講解了Unity3D的安裝、發(fā)布、界面等主要功能,并深入介紹AR(增強現(xiàn)實)、VR(虛擬現(xiàn)實)開發(fā)方法,以及地圖定位、攝像機、聲音播放等開發(fā)技巧,讓讀者了解到如何使用Unity3D制作AR\VR產(chǎn)品,快速進入Unity3D應(yīng)用開發(fā)之門。
本書適合使用Unity3D平臺開發(fā)AR\VR游戲和應(yīng)用的移動開發(fā)人員,也適合高等院校和培訓(xùn)機構(gòu)相關(guān)專業(yè)移動游戲開發(fā)方向的師生教學(xué)參考。
前言
Unity3D是由UnityTechnologies公司開發(fā)的一款跨平臺的游戲行業(yè)軟件,能夠讓用戶輕松快速地創(chuàng)建互動游戲、實時動畫等內(nèi)容,并發(fā)布到蘋果、安卓等多個平臺。因其良好的生態(tài)及廣泛的支持,使其在增強現(xiàn)實開發(fā)上也獲得了眾多廠商的青睞。很多增強現(xiàn)實提供商都提供了基于Unity3D的SDK包。
本書面向的讀者大多是沒有接觸過Unity3D的初學(xué)者。讀者可以通過該書快速地了解Unity3D以及增強現(xiàn)實的基本概念和一些實例,并且快速地參照例子制作出增強現(xiàn)實的作品。
本書內(nèi)容介紹
本書包括14章內(nèi)容,分別介紹如下。
第1~3章是Unity3D基礎(chǔ)介紹。前3章內(nèi)容快速介紹了Unity3D的基本知識、操作界面、基本概念等,讓讀者對于Unity3D有了一個總體的了解,并能進行一些基礎(chǔ)的操作,代碼編寫。
第4~6章是增強現(xiàn)實開發(fā)。該部分介紹了增強現(xiàn)實的基本概念、一些優(yōu)秀的實例,并詳細講解了用Unity3D和Vufoira、easyAR兩款增強現(xiàn)實SDK開發(fā)圖片識別顯示3D模型視頻的過程。
第7~9章是基于Vive的虛擬現(xiàn)實開發(fā)。該部分介紹了虛擬現(xiàn)實的基本概念,如何利用官方提供的SDK進行Vive的虛擬現(xiàn)實開發(fā)。其中詳細講解了兩個不同的插件如何對Vive進行開發(fā),包括基礎(chǔ)按鈕到常用按鈕的傳送、UI、拾取等。
第10章介紹了在安卓環(huán)境下,如何使用高德地圖提供的定位功能進行開發(fā)。本章還介紹了如果在Unity3D下簡單地調(diào)用Java和安卓類的方法屬性。
第11~14章是其他Unity3D相關(guān)的內(nèi)容。該部分介紹了Unity3D開發(fā)過程中常用的一些代碼片段及一些常用的Unity3D插件,包括常用攝像機、聲音控制等。
本書示例代碼及資料內(nèi)容如下:
?增強現(xiàn)實介紹及相關(guān)的視頻(英文)
?導(dǎo)出安卓需要的SDK
?VuforiaSDK及官方示例,相關(guān)圖片
?EasyARSDK及官方示例
?高德地圖安卓定位插件及示例
?Unity3D常用代碼
?Vive增強現(xiàn)實開發(fā)例子
本書代碼下載地址
http://pan.baidu.com/s/1pLDEvbH(注意數(shù)字和字母大小寫)
如果代碼下載有問題,請聯(lián)系電子郵箱booksaga@163.com,郵件主題為“AR代碼”。
本書閱讀過程中,如有疑問,可以發(fā)郵件至5140075@qq.com,或者訪問作者的技術(shù)博客http://blog.csdn.net/wuyt2008并留言,以獲得幫助。
吳雁濤
2017年7月
吳雁濤,網(wǎng)絡(luò)游戲開發(fā)工程師,有多年的教學(xué)經(jīng)驗。
目錄
第1章Unity的基本介紹1
1.1功能特點1
1.1.1Unity簡介1
1.1.2Unity的特點1
1.2版本及費用2
1.3下載和安裝2
1.3.1下載2
1.3.2安裝3
1.3.3第一次運行7
1.4商城內(nèi)容和官方資源8
第2章Unity主要界面介紹11
2.1理解Unity項目的結(jié)構(gòu)11
2.2啟動界面12
2.3默認界面13
2.4Game(游戲)視圖14
2.5Scene(場景)視圖15
2.6Hierarchy(層級)視圖16
2.7Inspector(檢視)視圖17
2.8Project(項目)視圖18
2.9Console(控制臺)視圖21
第3章Unity快速入門22
3.1場景22
3.1.1場景和項目22
3.1.2理解項目和場景24
3.2攝像機24
3.3游戲?qū)ο?7
3.4預(yù)制件29
3.5組件31
3.6其他常用內(nèi)容32
3.6.13D模型32
3.6.2剛體33
3.6.3重力35
3.6.4物理特性36
3.6.5穿透38
3.6.6粒子系統(tǒng)38
3.7UnityGUI40
3.7.1RenderMode顯示模式41
3.7.2定位方式43
3.7.3響應(yīng)腳本44
3.8腳本47
3.8.1基本介紹47
3.8.2MonoBehaviour48
3.8.3Transform49
3.8.4GameObject50
3.8.5常用事件51
3.8.6Instantiate52
3.8.7Destory53
3.8.8獲取指定游戲?qū)ο蠡蚪M件55
3.8.9指定平臺57
3.8.10DontDestroyOnLoad58
3.8.11SendMessage58
3.8.12場景切換60
3.9資源包的導(dǎo)入和導(dǎo)出61
3.9.1導(dǎo)入資源包61
3.9.2導(dǎo)出資源包62
3.10發(fā)布應(yīng)用64
3.10.1發(fā)布Windows應(yīng)用65
3.10.2發(fā)布Android應(yīng)用66
3.10.3發(fā)布iOS應(yīng)用71
3.11Unity商城資源下載和導(dǎo)入74
第4章增強現(xiàn)實介紹76
4.1基本概念76
4.2主流實現(xiàn)方式76
4.3典型案例78
4.4常用增強現(xiàn)實SDK81
4.5其他83
第5章基于VuforiaSDK的增強現(xiàn)實開發(fā)85
5.1Vuforia簡介85
5.2準(zhǔn)備工作85
5.2.1注冊賬號85
5.2.2下載SDK86
5.2.3添加key87
5.2.4添加數(shù)據(jù)庫89
5.3識別圖片顯示3D模型89
5.3.1添加識別圖片89
5.3.2下載識別數(shù)據(jù)93
5.3.3建立場景93
5.3.4設(shè)置游戲?qū)ο?5
5.3.5測試96
5.4識別柱體顯示3D模型96
5.4.1添加識別柱體96
5.4.2下載識別數(shù)據(jù)99
5.4.3建立場景99
5.4.4設(shè)置游戲?qū)ο?01
5.4.5測試103
5.5識別物體顯示3D模型103
5.5.1下載VuforiaObjectScanner并打印圖片103
5.5.2掃描物體104
5.5.3添加識別物體106
5.5.4下載識別數(shù)據(jù)107
5.5.5建立場景108
5.5.6設(shè)置游戲?qū)ο?09
5.5.7測試110
5.6識別圖片播放視頻111
5.6.1下載例子111
5.6.2導(dǎo)入例子和數(shù)據(jù)112
5.6.3建立場景112
5.6.4設(shè)置游戲?qū)ο?15
5.6.5測試117
第6章基于EasyARSDK的增強現(xiàn)實開發(fā)118
6.1EasyAR簡介118
6.2獲得key118
6.3下載開發(fā)包119
6.4識別圖片顯示3D內(nèi)容120
6.4.1新建場景120
6.4.2替換添加腳本123
6.4.3設(shè)置游戲?qū)ο?25
6.4.4運行測試127
6.5識別圖片并將圖片映射為3D模型紋理(涂涂樂)128
6.5.1準(zhǔn)備工作128
6.5.2設(shè)置模型紋理128
6.5.3運行測試130
6.6識別圖片播放視頻130
6.6.1準(zhǔn)備工作130
6.6.2添加用于播放視頻的3D物體131
6.6.3運行測試133
6.7打包安卓的注意事項133
第7章虛擬現(xiàn)實簡介134
7.1虛擬現(xiàn)實基本概念134
7.2常見的幾種VR硬件134
7.3HTCVive介紹136
7.4HTCVive的手柄137
7.5Vive上的VR應(yīng)用介紹137
7.6基于Vive的VR開發(fā)常見的幾個問題139
第8章基于InputUtility插件的虛擬現(xiàn)實開發(fā)141
8.1基于InputUtility插件開發(fā)141
8.2SDK下載141
8.3按鈕開發(fā)綜述142
8.4Trigger按鈕開發(fā)144
8.5Pad按鈕開發(fā)145
8.6操作GUI146
8.7拖動遠處的3D物體150
8.8傳送152
8.9物體拾取和觸碰158
第9章基于InteractionSystem的虛擬現(xiàn)實開發(fā)165
9.1InteractionSystem插件及SDK下載165
9.2按鈕控制166
9.3基礎(chǔ)碰觸169
9.4物體拾取174
9.5傳送180
9.6操作UI185
9.7道具拾取189
9.8按鈕提示顯示196
第10章高德地圖Android定位SDK在Unity下的簡單使用200
10.1Unity簡單調(diào)用Java類200
10.2高德地圖key的獲取207
10.3安全碼SHA1獲取210
10.4準(zhǔn)備Jar211
10.5導(dǎo)入Unity214
10.6獲取定位信息214
10.6.1獲取定位信息的腳本214
10.6.2添加調(diào)用腳本221
10.6.3測試224
10.6.4插件224
10.7獲取地圖225
10.7.1說明225
10.7.2腳本226
10.7.3場景226
10.7.4打包運行228
第11章Unity3D攝像機開發(fā)229
11.1常用的幾種攝像機229
11.1.1CctvCamera230
11.1.2HandHeldCamera233
11.1.3MultipurposeCameraRig236
11.1.4FreeLookCameraRig240
11.1.5第一人稱視角243
11.1.6DungeonCamera244
11.1.7LookAtCamera248
11.2雙攝像機249
第12章聲音播放255
12.1AudioClip、AudioSource、AudioListener255
12.1.1AudioClip255
12.1.2AudioSource256
12.1.3AudioListener256
12.2播放背景音樂257
12.3控制背景聲音音量259
12.4播放特效聲音262
12.5控制特效音量268
第13章Unity3D服務(wù)器端和客戶端通信276
13.1服務(wù)器端和客戶端通信概述276
13.2服務(wù)器端和客戶端通信實例276
第14章其他Unity3D相關(guān)的內(nèi)容286
14.1帶進度條的場景切換286
14.2單一數(shù)據(jù)存儲287
14.3少量初始數(shù)據(jù)的存儲288
14.3.1將數(shù)據(jù)存儲在預(yù)制件里289
14.3.2利用ScriptableObject將數(shù)據(jù)存儲為資源290
14.4用iTween插件進行移動、縮放、旋轉(zhuǎn)操作293
14.4.1下載并導(dǎo)入插件293
14.4.2iTween的基本調(diào)用294
14.4.3iTween常見參數(shù)介紹294
14.4.4iTween實現(xiàn)移動295
14.4.5iTween實現(xiàn)旋轉(zhuǎn)295
14.4.6iTween實現(xiàn)大小變化296
14.4.7iTween的變化值297
14.4.8iTweenVisualEditor導(dǎo)入299
14.4.9iTweenVisualEditor控制變化300
14.4.10iTweenVisualEditor指定運動路徑302
14.5插件推薦305
第7章
?虛擬現(xiàn)實簡介?
7.1虛擬現(xiàn)實基本概念
虛擬現(xiàn)實,英文VirtualReality,簡稱VR,是利用計算機系統(tǒng)生成一個模擬環(huán)境,提供使用者關(guān)于視覺、聽覺、觸覺等感官的模擬,讓使用者如同身歷其境一般,可以及時、沒有限制地觀察模擬環(huán)境內(nèi)的事物。
全景照片、全景視頻和全景漫游是否算VR?這個還是有一些爭論。不過,一般技術(shù)人員默認的VR不包括上述三種,而是專指由計算機3D模型生成虛擬環(huán)境的這種情況。
7.2常見的幾種VR硬件
1.眼鏡盒
以googlecardboard為代表,單純的頭戴式的VR設(shè)備。最常見的是將手機插入眼鏡盒,利用手機屏幕播放內(nèi)容,并提供運算。區(qū)別更多的只是盒子是紙做的還是塑料做的,戴著是否舒服。早期的Oculus也是這類,雖然是利用計算機運算,但是也只有一個眼鏡盒,如圖7-1所示。