Unity3D是一款跨平臺3D、2D游戲及互動內容開發(fā)引擎,并有著廣泛的影響力。隨著近年增強現實和虛擬現實的興起,很多增強現實和虛擬現實的技術提供方都提供了基于Unity3D的SDK包。可以預見,市場對Unity3D人才的需求將會大大增加。
本書共分為14章,詳細講解了Unity3D的安裝、發(fā)布、界面等主要功能,并深入介紹AR(增強現實)、VR(虛擬現實)開發(fā)方法,以及地圖定位、攝像機、聲音播放等開發(fā)技巧,讓讀者了解到如何使用Unity3D制作AR\VR產品,快速進入Unity3D應用開發(fā)之門。
本書適合使用Unity3D平臺開發(fā)AR\VR游戲和應用的移動開發(fā)人員,也適合高等院校和培訓機構相關專業(yè)移動游戲開發(fā)方向的師生教學參考。
前言
Unity3D是由UnityTechnologies公司開發(fā)的一款跨平臺的游戲行業(yè)軟件,能夠讓用戶輕松快速地創(chuàng)建互動游戲、實時動畫等內容,并發(fā)布到蘋果、安卓等多個平臺。因其良好的生態(tài)及廣泛的支持,使其在增強現實開發(fā)上也獲得了眾多廠商的青睞。很多增強現實提供商都提供了基于Unity3D的SDK包。
本書面向的讀者大多是沒有接觸過Unity3D的初學者。讀者可以通過該書快速地了解Unity3D以及增強現實的基本概念和一些實例,并且快速地參照例子制作出增強現實的作品。
本書內容介紹
本書包括14章內容,分別介紹如下。
第1~3章是Unity3D基礎介紹。前3章內容快速介紹了Unity3D的基本知識、操作界面、基本概念等,讓讀者對于Unity3D有了一個總體的了解,并能進行一些基礎的操作,代碼編寫。
第4~6章是增強現實開發(fā)。該部分介紹了增強現實的基本概念、一些優(yōu)秀的實例,并詳細講解了用Unity3D和Vufoira、easyAR兩款增強現實SDK開發(fā)圖片識別顯示3D模型視頻的過程。
第7~9章是基于Vive的虛擬現實開發(fā)。該部分介紹了虛擬現實的基本概念,如何利用官方提供的SDK進行Vive的虛擬現實開發(fā)。其中詳細講解了兩個不同的插件如何對Vive進行開發(fā),包括基礎按鈕到常用按鈕的傳送、UI、拾取等。
第10章介紹了在安卓環(huán)境下,如何使用高德地圖提供的定位功能進行開發(fā)。本章還介紹了如果在Unity3D下簡單地調用Java和安卓類的方法屬性。
第11~14章是其他Unity3D相關的內容。該部分介紹了Unity3D開發(fā)過程中常用的一些代碼片段及一些常用的Unity3D插件,包括常用攝像機、聲音控制等。
本書示例代碼及資料內容如下:
?增強現實介紹及相關的視頻(英文)
?導出安卓需要的SDK
?VuforiaSDK及官方示例,相關圖片
?EasyARSDK及官方示例
?高德地圖安卓定位插件及示例
?Unity3D常用代碼
?Vive增強現實開發(fā)例子
本書代碼下載地址
http://pan.baidu.com/s/1pLDEvbH(注意數字和字母大小寫)
如果代碼下載有問題,請聯系電子郵箱booksaga@163.com,郵件主題為“AR代碼”。
本書閱讀過程中,如有疑問,可以發(fā)郵件至5140075@qq.com,或者訪問作者的技術博客http://blog.csdn.net/wuyt2008并留言,以獲得幫助。
吳雁濤
2017年7月
吳雁濤,網絡游戲開發(fā)工程師,有多年的教學經驗。
目錄
第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商城內容和官方資源8
第2章Unity主要界面介紹11
2.1理解Unity項目的結構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游戲對象27
3.4預制件29
3.5組件31
3.6其他常用內容32
3.6.13D模型32
3.6.2剛體33
3.6.3重力35
3.6.4物理特性36
3.6.5穿透38
3.6.6粒子系統38
3.7UnityGUI40
3.7.1RenderMode顯示模式41
3.7.2定位方式43
3.7.3響應腳本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獲取指定游戲對象或組件55
3.8.9指定平臺57
3.8.10DontDestroyOnLoad58
3.8.11SendMessage58
3.8.12場景切換60
3.9資源包的導入和導出61
3.9.1導入資源包61
3.9.2導出資源包62
3.10發(fā)布應用64
3.10.1發(fā)布Windows應用65
3.10.2發(fā)布Android應用66
3.10.3發(fā)布iOS應用71
3.11Unity商城資源下載和導入74
第4章增強現實介紹76
4.1基本概念76
4.2主流實現方式76
4.3典型案例78
4.4常用增強現實SDK81
4.5其他83
第5章基于VuforiaSDK的增強現實開發(fā)85
5.1Vuforia簡介85
5.2準備工作85
5.2.1注冊賬號85
5.2.2下載SDK86
5.2.3添加key87
5.2.4添加數據庫89
5.3識別圖片顯示3D模型89
5.3.1添加識別圖片89
5.3.2下載識別數據93
5.3.3建立場景93
5.3.4設置游戲對象95
5.3.5測試96
5.4識別柱體顯示3D模型96
5.4.1添加識別柱體96
5.4.2下載識別數據99
5.4.3建立場景99
5.4.4設置游戲對象101
5.4.5測試103
5.5識別物體顯示3D模型103
5.5.1下載VuforiaObjectScanner并打印圖片103
5.5.2掃描物體104
5.5.3添加識別物體106
5.5.4下載識別數據107
5.5.5建立場景108
5.5.6設置游戲對象109
5.5.7測試110
5.6識別圖片播放視頻111
5.6.1下載例子111
5.6.2導入例子和數據112
5.6.3建立場景112
5.6.4設置游戲對象115
5.6.5測試117
第6章基于EasyARSDK的增強現實開發(fā)118
6.1EasyAR簡介118
6.2獲得key118
6.3下載開發(fā)包119
6.4識別圖片顯示3D內容120
6.4.1新建場景120
6.4.2替換添加腳本123
6.4.3設置游戲對象125
6.4.4運行測試127
6.5識別圖片并將圖片映射為3D模型紋理(涂涂樂)128
6.5.1準備工作128
6.5.2設置模型紋理128
6.5.3運行測試130
6.6識別圖片播放視頻130
6.6.1準備工作130
6.6.2添加用于播放視頻的3D物體131
6.6.3運行測試133
6.7打包安卓的注意事項133
第7章虛擬現實簡介134
7.1虛擬現實基本概念134
7.2常見的幾種VR硬件134
7.3HTCVive介紹136
7.4HTCVive的手柄137
7.5Vive上的VR應用介紹137
7.6基于Vive的VR開發(fā)常見的幾個問題139
第8章基于InputUtility插件的虛擬現實開發(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的虛擬現實開發(fā)165
9.1InteractionSystem插件及SDK下載165
9.2按鈕控制166
9.3基礎碰觸169
9.4物體拾取174
9.5傳送180
9.6操作UI185
9.7道具拾取189
9.8按鈕提示顯示196
第10章高德地圖Android定位SDK在Unity下的簡單使用200
10.1Unity簡單調用Java類200
10.2高德地圖key的獲取207
10.3安全碼SHA1獲取210
10.4準備Jar211
10.5導入Unity214
10.6獲取定位信息214
10.6.1獲取定位信息的腳本214
10.6.2添加調用腳本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服務器端和客戶端通信276
13.1服務器端和客戶端通信概述276
13.2服務器端和客戶端通信實例276
第14章其他Unity3D相關的內容286
14.1帶進度條的場景切換286
14.2單一數據存儲287
14.3少量初始數據的存儲288
14.3.1將數據存儲在預制件里289
14.3.2利用ScriptableObject將數據存儲為資源290
14.4用iTween插件進行移動、縮放、旋轉操作293
14.4.1下載并導入插件293
14.4.2iTween的基本調用294
14.4.3iTween常見參數介紹294
14.4.4iTween實現移動295
14.4.5iTween實現旋轉295
14.4.6iTween實現大小變化296
14.4.7iTween的變化值297
14.4.8iTweenVisualEditor導入299
14.4.9iTweenVisualEditor控制變化300
14.4.10iTweenVisualEditor指定運動路徑302
14.5插件推薦305
第7章
?虛擬現實簡介?
7.1虛擬現實基本概念
虛擬現實,英文VirtualReality,簡稱VR,是利用計算機系統生成一個模擬環(huán)境,提供使用者關于視覺、聽覺、觸覺等感官的模擬,讓使用者如同身歷其境一般,可以及時、沒有限制地觀察模擬環(huán)境內的事物。
全景照片、全景視頻和全景漫游是否算VR?這個還是有一些爭論。不過,一般技術人員默認的VR不包括上述三種,而是專指由計算機3D模型生成虛擬環(huán)境的這種情況。
7.2常見的幾種VR硬件
1.眼鏡盒
以googlecardboard為代表,單純的頭戴式的VR設備。最常見的是將手機插入眼鏡盒,利用手機屏幕播放內容,并提供運算。區(qū)別更多的只是盒子是紙做的還是塑料做的,戴著是否舒服。早期的Oculus也是這類,雖然是利用計算機運算,但是也只有一個眼鏡盒,如圖7-1所示。