PicoVR 开发入门教程系列 -- 环境搭建(1)
0. 软硬件环境与背景
硬件设备: Pico Neo3 VR设备 + 打开开发者模式
开发环境: Window10
开发软件: Unity 2020/2019 LTS 版本 + VS2019 + Android环境(ADB, Android SDK等等)
1. Android APP创建并在Pico设备上运行(非VR APP)
创建Unity 3D 工程, 添加一些常见的对象
切换APP的Platform成Android: File | Build Settings | Android | Switch Platform
直接运行到Pico设备: File | Build Settings | Android | Run Device, choose the connected Pico Neo3 | Build and Run
![1.png](https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/63ef9a13cd0e48a7bbac48c23b15bc1d~tplv-k3u1fbpfcp-zoom-in-crop-mark:3024:0:0:0.image?)
在Pico中看到的Android APP打开的场景是非VR的
![2.jpeg](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/187c98c52cd34904b71cd09869c41158~tplv-k3u1fbpfcp-zoom-in-crop-mark:3024:0:0:0.image?)
2. Android APP 在Pico上 VR 化
进入Pico的开发者社区(developer.pico-interactive.com/sdk) 下载Pico SDK的定制版 UnityXR SDK -- UnityXR_v2.0.3_B51
在Project中导入Pico XRUnity SDK : Window | Package Manager | In Project | Add package from disk | 选择 UnityXR_v2.0.3_B51/package.json , 然后会弹出PXR_SDK_Setting, 简单配置, 在插件位置出现相应的插件包: Project | Packages | PicoXR Plugin
![3.png](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/5a21e0eb70a74f489e8911a2b6fe4db9~tplv-k3u1fbpfcp-zoom-in-crop-mark:3024:0:0:0.image?)
在Project中导入XR Plugin Management : Window | Package Manager | Unity Registry | XR Plugin Management | Install XR Plugin Management
Edit | Project Settings | XR Plug-in Management | Android Tab | 选择PicoXR, 并勾选initialize XR on Startup
![4.png](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/96535915a27046a49d0a81aaed2a3316~tplv-k3u1fbpfcp-zoom-in-crop-mark:3024:0:0:0.image?)
Build And Run此时直接编译会报错, 针对PicoXR还需要对项目进行额外的设置, App才能Run起来, 具体参考: https://sdk.picovr.com/docs/UnityXRSDK/cn/chapter_three.html ,配置完成以后, 整个项目就是一个 VR APP了!!!
Edit | Project Settings | Player | Android Tab | Other Settings | Rendering | Color Space * 选择 Linear
Edit | Project Settings | Player | Android Tab | Other Settings | Rendering |Graphics APIs, 删掉 Vulkan, 留下OpenGLES3 !!!!
Edit | Project Settings | Player | Android Tab | Other Settings | Minimum API Level | API Level 29及以上
其他配置, 例如Quality 参考官方文档, 设置成Don't Sync
![5.png](https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/2e2b7f719f6d45eb90739099954dc46b~tplv-k3u1fbpfcp-zoom-in-crop-mark:3024:0:0:0.image?)
转化Camera为XR Camera:
删除Hierarchy 场景中原来的Camera
Hierarchy | 右键 | XR |Room Scale XR Rig, 用这个对象替代Camera
修改XR Rig GameObject的XR Rig脚本的Tracking Origin Mode为Floor
修改XR Rig | Camera Offset | Main Camera | FPS中的Inspector | Canvas | Render Mode | Event Camera拖入XR Rig | Camera Offset | Main Camera
此时 Build And Run 就能在Pico设备中看到手柄射线, 并且Camera可以被HMD控制运动!!!
经过以上配置, 整个APP 已经是 VR APP了!!!
3. Pico上 VR App 针对 Pico手柄的定制化
选择Hierachy中的XR Rig | Camera Offset | Main Camera | FPS, 删除这个FPS. 从Project | Packages | PicoXR Plugin | Assets | Resources | Prefabs | FPS 拖到Camera Offset中作为子游戏对象.
修改XR Rig | Camera Offset | Main Camera | FPS Prefab中的Inspector | Canvas | Render Mode | Event Camera拖入XR Rig | Camera Offset | Main Camera, 这样HMD头部显示就OK了!!!
设置LeftHand Controller的Model Prefab模型: 选择Hierachy中的XR Rig | Camera Offset | LeftHand Controller | Inspector -> XR Controller -> Model -> Model Prefab 配置项拖入Project | Packages | PicoXR Plugin | Assets | Resources | Prefabs | LeftControllerModel !!!
设置RightHand Controller的Model Prefab模型: 选择Hierachy中的XR Rig | Camera Offset | RIghtHand Controller | Inspector -> XR Controller -> Model -> Model Prefab 配置项拖入Project | Packages | PicoXR Plugin | Assets | Resources | Prefabs | RightControllerModel !!!
![7.png](https://p1-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/2b9ff304f27446cbb6ac68c7c5ac04f7~tplv-k3u1fbpfcp-zoom-in-crop-mark:3024:0:0:0.image?)
![8.png](https://p3-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/1b3e751f3799421bb93ceb57d717493f~tplv-k3u1fbpfcp-zoom-in-crop-mark:3024:0:0:0.image?)
此时 Build And Run 就能在Pico设备中看到手柄射线, 并且Camera可以被HMD控制运动, 并且手柄按键反馈也能在VR设备中展示:
![9.jpeg](https://p6-juejin.byteimg.com/tos-cn-i-k3u1fbpfcp/e53083539b1e4153bf99f1048ad2b609~tplv-k3u1fbpfcp-zoom-in-crop-mark:3024:0:0:0.image?)
参考项目
BeginPico01.7z 中是以上实践项目, 其中缺少 UnityXR_v2.0.3_B51插件, 需要根据以上文档, 自己导入该插件!!!
掘金上不能上传资源, 就这样了.
|