Unity5.3官方VR教程-系列1

 

若是你不是VR遊戲或應用的開發者,能夠選擇無視下面的內容,這不是給普通用戶看的~html

若是你以前曾經爲Oculus Rift DK2或者Gear VR開發過,那麼內心面必定曾經有千萬個草泥馬來回奔跑過。雖然Unity從5.1版本開始就支持VR應用和遊戲開發,可是從Oculus和Unity雙方的開發者論壇討論狀況看,你們都對雙方互相推諉責任感到不滿。android

現在,隨着第一代消費級移動VR產品Samsung Gear VR正式推向市場,而三大核心主力設備也將悉數於2016年Q1和Q2粉墨登場,一貫與時俱進的Unity再也坐不住了。windows

face

就在今天,Unity官方在推出5.3版本的同時也推出了首個官方的VR開發教程。雖然不是很詳細,可是對於苦逼了好久的開發者來講,簡直就是仙音佛樂。框架

廢話少說,讓咱們來一塊兒看看吧。性能

PART I UNITY VR簡介學習

Unity內置對若干VR設備的支持,至於具體是哪些設備,不妨看看VRDeviceType這個枚舉變量。測試

device

本教程主要針對Oculus系列的VR設備,特別是Oculus Rift Development Kit 2(DK2)和消費者版本的Samsung Gear VR(須要配合三星旗艦手機系列使用,如Galaxy S6, S6 Edge,S6 Edge+,Note 5)。對於配合第一代開拓者版本Gear VR的Note4,咱們並不關心。所以雖然有些VR示例仍是能夠在這臺設備上運行,可是效果確定沒那麼好。哥,你就明說不要用note4和開拓者版本的gear vr好了。優化

固然,Unity也會在後續支持其它VR頭戴設備,好比HTC VIVE。所以當那一天到來的時刻,這篇官方的教程也會隨之更新的。老實說,Unity和Oculus真是一對好基友。網站

若是想了解VR頭戴設備的更多信息,建議去閱讀官方的手冊。spa

PART II 在Unity項目中設置VR

首先請下載最新的Oculus runtime 0.8或更高版本(https://developer.oculus.com/downloads/ ),以及最新的Unity5.3或更高版本(http://unity3d.com/get-unity/download )。

在項目中啓用對VR的支持廢除簡單,只須要在Unity菜單中選擇Edit > Project Settings> Player > Other Settings > Rendering

1_enable_vr

而後在Inspector中勾選」Virtual Reality Supported「。

2_enable_vr

在runtime時,能夠經過在代碼中使用UnityEngine.VR.VRSettings.enabled屬性來進行設置。

code

PART III 在Unity中預覽VR場景

當咱們在Unity Editor中已經啓用VR Support,並且鏈接上了DK2設備時,進入Play 模式就能夠在DK2上顯示遊戲的場景。這樣能夠大大提升開發測試和迭代的效率。和以前不一樣,開發者無需編譯生成一個可執行的項目才能看到VR應用或遊戲的調整。固然,老司機們會發現此前的雙眼視圖已經被單一視圖替代了。

3_enable_vr_cube

須要提醒你們的是,咱們不必爲每隻眼睛都建立一個camera,全部的camera都會在VR中進行渲染,除了那些分配了Render Texture(渲染紋理)的攝像機。關於Render Textures,請參考這裏(http://docs.unity3d.com/Manual/class-RenderTexture.html )。Unity會自動對攝像機的渲染進行優化,好比culling(剔除)和陰影渲染,從而減小性能消耗。

關於VR的相關主題還能夠在Unity Manual(http://docs.unity3d.com/Manual/VROverview.html )和Unity Scripting API(http://docs.unity3d.com/ScriptReference/30_search.html?q=VR ) 和中找到更多信息。

PART IV 使用Unity進行VR開發的軟硬件推薦

由於VR是一個全新的媒介,因此在撰寫本教程的時候存在着軟硬件的限制,請參考如下內容。

1.硬件

爲了讓用戶得到好的VR遊戲體驗,須要在頭戴設備上實現所需的幀速。在DK2上的最小幀速是75fps,而在Gear VR上的最小幀速是60fps。若是幀速小於以上數值,那麼用戶會明顯感受到體驗降低甚至致使暈眩。

除了保持遊戲幀速在必定的數值之上,玩家電腦上的GPU還必須具有足夠的能力,能夠按所需的分辨率以HMD頭戴設備面板的刷新率輸出。以DK2爲例,就是須要作到75hz和1920*1080。不過若是你想給Oculus Rift CV1開發應用,那麼就必須實現90hz和2160*1200的分辨率,這將是個巨大的挑戰。

若是你在使用DK2,那麼須要確保硬件設備能夠用所需的分辨率以所需的刷新率輸出圖像。不少筆記本電腦採用獨立顯卡和集成顯卡切換的方式,但這些顯卡基本上都沒法知足以上要求,甚至連1920*1080和75hz都實現不了,這樣將嚴重影響用戶體驗。關於這部份內容,請參考Oculus的相關文檔(https://support.oculus.com/hc/en-us/articles/201835987-Oculus-Rift-Development-Kit-2-FAQ ),以及Oculus PC配置指南(https://www.oculus.com/en-us/oculus-ready-pcs/ )。

2.軟件

蘋果OS X操做系統:目前來講咱們仍是可使用OSX 10.9以上的操做系統配合Oculus 0.0.5 runtime進行開發。但由於Oculus官方暫停了對OS X系統的支持,所以建議果粉們不要拍磚,仍是老老實實用Windows系統,並使用Unity的原生VR功能。

Windows: 支持Windows 7,8,8.1和windows 10.

Android: 推薦使用android OS Lollipop 5.1或更高版本

顯卡驅動:請確保你的顯卡驅動是最新的。可使用Oculus Configuration Utility來檢查顯卡驅動是否夠用。

Oculus Runtime:爲了在Unity 5.3中進行VR開發,請使用Oculus Runtime 0.8或更高版本。

PART V VR示例項目

做爲本教程的一部分,咱們在Asset Store上免費提供了一個VR示例項目。該項目能夠同時支持DK2和Gear VR,咱們將根據Oculus硬件的迭代不斷更新該示例項目,同時也會在未來考慮支持其它頭戴設備。

該示例項目的下載連接以下:https://www.assetstore.unity3d.com/#!/content/51519

1.示例場景

主要的示例場景包括:

(1)Intro: 介紹場景,教用戶學習基本的交互

(2)Menu:菜單場景,能夠選擇迷你遊戲來玩

(3)Flyer:一個飛行小遊戲

(4)Maze:一個桌面迷宮遊戲

(5)Target Gallery:一個迴廊射擊遊戲

(6)Target Arena:一個360度射擊競技場遊戲

怎麼樣,Unity仍是很厚道的吧?

除了這些完整的小遊戲以外,還有一些示例場景涵蓋了本教程的一些重要概念:

(1)InteractiveItem:演示瞭如何VR中和物體進行交互

(2)RenderScale:演示了RenderScale將如何影響圖像質量

(3)Reticle: VR中 reticle的基本示例

(4)Rotation:演示了物體將如何隨頭部運動作出響應

(5)Touchpad:演示瞭如何使用Gear VR的觸摸板進行交互。

所涵蓋的重要概念:

(1)自頂向下的桌面遊戲機制

(2)朝屏幕內的星際火狐風格的射擊遊戲機制

(3)迴廊射擊遊戲機制

(4)360度迴廊射擊遊戲機制

(5)如何在VR中設計界面

(6)如何設計立體界面

(7)在VR中和物體進行交互的基本框架,包括如何處理視線焦點的切換

(8)reticle運動、縮放、陰影等

(9)基於頭部旋轉的運動

(10)如何使用Gear VR觸摸屏,包括輕擊、雙擊和滑動,或是在使用DK2時如何使用鍵盤鼠標進行交互。

(11)如何判斷設備時Gear VR仍是DK2

(12)如何在圍繞中心點旋轉攝像機時避免暈眩效應

(13)如何實現攝像機的消隱

(14)攝像機消隱的過渡

(15)物體的池化

除了提供這些概念以外,爲了方便VR開發者的重用,咱們還提供了其它一些有用的示例:

(1)攝像機的消隱

(2)攝像機消隱的過渡

(3)在VR中和物體進行交互的框架

(4)Hold以確認交互

(5)reticle運動和縮放

(6)和平臺無關的文本

(7)指示特定方向的UI箭頭

(8)移動UI元素,使其始終面向攝像機

(9)交互時傾斜UI物體。

爲了運行本項目,開發者須要使用Unity5.3.0或以上版本,擁有推薦配置以上的軟硬件,擁有一臺DK2或是搭配合適三星手機的Gear VR,同時要下載Oculus Runtime 0.8或以上版本。

PART VI Oculus Unity Utilities

做爲補充,你也能夠下載Oculus官方提供的Oculus Unity Utilities(https://developer.oculus.com/downloads/ )來實現一些特殊功能。其中包含了有用的腳本和預設,好比如何調整IPD(瞳間距)等等。

本教程只關注原生Unity VR開發,所以對Oculus Unity Utilities,請參考Oculus官方網站以獲取更多信息。(https://developer.oculus.com/downloads/game-engines/0.1.3.0-beta/Oculus_Utilities_for_Unity_5/

好了,如今你已經知道本身須要哪些東西了。第一篇教程到此結束,在後續的時間裏面咱們將進一步學習如何開始VR開發。

相關文章
相關標籤/搜索