PicoVR 一体机开发环境搭建

学习笔记,仅供参考交流


一、PicoVR 官网 http://dev.picovr.com/sdk 下载适用Unity的PicoMobileSDK,配套的有中英文的开发文档,感觉比较贴心了
二、sdk包括PicoMobileSDK 和Plugins两部分,Plugins/Android 下的Manifest文件具体配置在官方文档中详细说明,默认已经配置好了;PicoMobileSDK文件夹包括四个部分:手柄控制、支付功能、核心SDK和音量电量等功能 ,基本的环境搭建Controller和UnitySDK两个部分足够,不过实际开发中可能需要对sdk进行部分自定义
PicoVR 一体机开发环境搭建_第1张图片
* 自定义sdk包(仅供参考,有问题请赐教):
链接:https://pan.baidu.com/s/1_ks4bXQ04_f7ETjrfwZC_g
提取码:4kjv

Pico的sdk更新比较快,我发现官网只能下载最新版,所以本文仅作参考
注:新版的sdk手柄都是两个而且是Neo的手柄,如果是G2设备或其他,找到 PvrController0/controller 上挂载的脚本Pvr_Controller Init 打开,修改编辑器模式下显示你想要的手柄的名字即可
PicoVR 一体机开发环境搭建_第2张图片

三、环境搭建步骤(以Pico G2 3Dof但手柄为例)
1、必备Prefabs:
Pvr_UnitySDK(拖入Hierarchy,删掉默认相机)
ControllerMnager(拖入Hierarchy)
PvrController0(放到Pvr_UnitySDK下作子物体,单手柄默认Controller0)
PvrController1(同Controller0,双手柄的自行添加)

HeadControl( 拖入Pvr_UnitySDK作为子物体)
注:新版本的sdk中,直接将ControllerManager拖入Pvr_UnitySDK预制体下做子物体即可
注:SDK中没有HeadControl预制体,在sdk的Demo示例中可以找到

**2、脚本配置**
  • ControllerManager脚本参数配置:指定手柄(双手柄的指定两个)PicoVR 一体机开发环境搭建_第3张图片
  • Event参数配置:指定UI交互时头显凝视点和射线交互点
  • 新版本sdk省去此过程PicoVR 一体机开发环境搭建_第4张图片
    3、Canvas画布配置
    第一、Canvas画布设置成世界坐标下,渲染相机指定为Head,即设备对应的相机
    第二、添加Pvr_UICanvas
    PicoVR 一体机开发环境搭建_第5张图片
    4、UI交互核心
  • ControllerManager添加脚本:Pvr_Controller Demo官方给出的示例脚本 ,该脚本主要实现交互功能,算是核心脚本了,需用户开发时进行自定义,省略不必要的参数和功能;
    * 另外需要注意的时HeadControl参数不可缺,否则打包运行会出现莫名的错误不执行,HeadControl主要用于Unity Editor中测试,省去打包的繁琐过程;
    新版sdk可以自定义切换HeadMode
  • Unity编辑器中测试快捷键:
    点击鼠标左键——等同按下手柄确认键
    Alt+鼠标滑动 —— 调整视角
    Alt+鼠标左键点击 —— 切换VR视角和全屏视角
    Shift+鼠标左键按住拖动——调整手柄射线方向

PicoVR 一体机开发环境搭建_第6张图片
四、总结
至此,Pico VR开发环境搭建就完成了
实际开发中,对Pvr_UnitySDK对象de位置进行适当调整就OK 了
emm……最后就是打包了

  • 1、Pico 一体机设备相当于手机,Android打包 ,so,AndroidSdk和Jdk要配置好 (高版本Unity省略该步骤)
  • 2、PlayerSettings:除了Unity打包必须配置外,Auto Graphics API取消勾选,PicoVR目前不支持Vulkan,一般OpenGLES2即可;Multithreaded Rendering 多线程渲染最好取消勾选;Android 版本支持6.0以上
    PicoVR 一体机开发环境搭建_第7张图片
  • 3、BuildSystem选择 Internal
    新版本sdk中,非硬性要求,Gradle 和Internal都可,只不过Gradle打包出来的能导出工程,Internal不行,具体自行百度
    PicoVR 一体机开发环境搭建_第8张图片

补充1:瞬移功能
原理:通过发射物理射线Ray来检测手柄射线的方向和目标点,绘制贝塞尔曲线或者直射线,射线dot即瞬移目标点,仅供参考交流
注:Pico官网提供了瞬移等其他的教程demo,可自行到官网github链接下载

补充2:Shader问题
问题:有时我们为实现某种效果需要指定某种Shader,在Unity编辑器中效果正常,但是打包到PicoVR 设备上或者其他Android设备上时效果失效,材质丢失,显示玫红色
对策:Edit / ProjectSettings / Built-in Shader Settings / Always Included Shaders 中添加上要用到的Shader

你可能感兴趣的:(VR)