[Gvr]Google VR SDK for Unity 簡單分析,gvrunity
準備工作
Google VR SDK for Unity Github下載: https://github.com/googlevr/gvr-unity-sdk
Google VR SDK文檔: https://developers.google.com/vr/unity/#features
Google APIs for Unity: https://developers.google.com/unity/
本文環境:Unity 5.3.1 x64 + gvr 0.8
搭建環境
1、如果你只需要SDK GoogleVRForUnity.unitypackage 可以參考我的文章:Github 下載單個檔案 。當然你clone整個項目也沒問題。
2、建立新工程,匯入gvr
Demo分析
sdk中有兩個Demo,在GoogleVR\DemoScenes\ HeadsetDemo || ControllerDemo 下
HeadDemo
這個demo是gvr的頭部運動Demo,在PC上 按住Alt+移動滑鼠 類比頭部轉動,按住 Ctrl+移動滑鼠 類比頭部傾斜
上述兩種運動都是 GvrMain\Head 的transform屬性在發生改變
當準星選中某個GameObject時,會有一個準星放大縮小的動畫,實現代碼請看 HeadDemo\Teleport.cs
ControllerDemo
此demo大概是通過串連手機來控制,實現代碼請看ControllerDemo\ControllerDemoManager.cs
答疑
解釋:我是直接使用GvrMain.prefab,出現的Main Camera是指:GrvMain\Head\Main Camera
為什麼我的情境中沒有準星?
答:把GoogleVr\Prefabs\UI\GvrReticle.prefab 拖動到 GrvMain\Head\Main Camera下
為什麼我情境中的GameObject不能被選中?
答:1. 給Main Camera添加 Physics Raycaster
2. 在Physics Raycaster 的Event Mask 選擇要接收事件的 Layer
如何讓某個GameObject可以被選中?
答:1. 給該GameObject添加 Collider (可以是BoxCollider,SpereCollider等等)
2. 再給該GameObject添加 Event Trigger (事件觸發程序)
3. 給該GameObject 綁定事件處理指令碼,該指令碼中包含以下函數 Enter ,Trigger ,Exit ,具體請實現
如何讓我的UI元素顯示在3D情境中?
答:1. 以UGUI為例,建立一個簡單的UI
2. 修改Cavas 的Render Mode為 Word Space,這樣它就可以渲染在世界空間中,而不是渲染在最頂層的螢幕上
3. 調整UI的位置到 Main Camera 視野內
如何接收情境中UI按鈕,被玩家點擊的事件?
答:1. 建立好UI之後,在Hierarchy視圖中找到 EventSystem
2. 給 EventSystem 添加 GazeInputModule
3. 把EventSystem 上的 Standalone Input Module 禁用或 把順序調整到 GazeInputModule下,或者 Remove它
4. 給UI按鈕 綁定事件處理指令碼,該指令碼中包含以下函數 Enter ,Trigger ,Exit ,具體請實現
如何把左右兩屏顯示變成普通的顯示
答: 在GrvMain 的GvrViewer 組件中,不勾選 VR Mode Enable
附
How to Make a VR Game With Unity and Google Cardboard
英文原版:https://www.raywenderlich.com/116805/make-vr-game-unity-google-cardboard
中文翻譯:http://www.tairan.com/archives/10636/