VR基础——PicoVR SDK接入及使用整理

VR基础——PicoVR SDK接入及使用整理

开发环境

SDK版本:
PicoVR Unity SDK v_2.8.1
要求:
支持Unity2017.4到Unity 2019.2.6

JDK jdk1.8.0及以上

Android SDK API Level 24 (Android 7.0)及以上
(最好不要超过安卓的版本)
本人使用:
Unity 2018.4
Android SDK API Level 26(Android 8.0)
PICO G2 (K4)

SKD接入前准备工作

  1. 下载PICOVR SDK,可直接百度搜索(文末附SDK下载链接);

  2. 导入PicoVR_Unity_SDK (根据自己电脑系统版本选择对应的64或32位),直接拖入Unity;

  3. 本人为64位已拖入

  4. 将SDK中的Pvr_UnitySDK 拖入场景中。该预制体位VR头盔所在物体。内含摄像机(将主场景摄像机删除仅保留预制体中的摄像机)SDK摄像机接入完成。在这里插入图片描述
    5.Pvr_Controller /Prefabs文件夹下ControllerManager预制体为手柄控制器预制体。
    根据手柄数量将对应的预制体拖入右侧Inspector面板中(非必须)。控制器接入成功。在这里插入图片描述
    剩余两个文件夹Pvr_VolumePowerBrightness Pvr_Payment为视觉凝视及支付信息面板。下附官方介绍链接,本文不做详细介绍。
    至此PicoVR_Unity_SDK 基本完全接入成功。

  5. Android SDK 接入及设置介绍。请自行下载安卓SDK 本人使用的是Android Studio 软件下载接入的SDK 版本为Android SDK API Level 26(Android 8.0),文末附Android Studio 软件下载链接;下图为详细接入过程请依据图内标号顺序接入。注:5为使用SDK内置的JDK 若不勾选需给自行设置JDK路径。 至此Android SDK 接入完成在这里插入图片描述

  6. 开发平台设置,需为PICO为Android平台,设置如下图所示 ;若步骤3无法设置或无法选择可能原因为为安装Android支持组件。可安装后重启Unity即可选择Android平台 完成步骤3,步骤6非必须使用默认亦可(若自行设置,建议和Android SDK版本相对应)。至此平台设置完成(若报错请百度详情)。在这里插入图片描述

PicoVR_Unity_SDK的常见函数介绍

仅对常用API进行介绍讲解,详情请查阅文末附的官方介绍链接

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Pvr_UnitySDKAPI;
public class Test : MonoBehaviour
{
//进行功能测试
    void Update()
    {
        
        if (Controller.UPvr_GetControllerState(0) == ControllerState.Connected)//判断手柄是否连接了 条件下Controller内的内容均为手柄控制器的内容
        {
            if (Controller.UPvr_GetKeyLongPressed(0, Pvr_KeyCode.TRIGGER))//判断是否长按
            {
                Debug.Log("TRIGGER键被长按下");
            }
            if (Controller.UPvr_IsTouching(0))//判断是否被触摸(里面数字表示哪个手柄)
            {
                Debug.Log("手柄被触摸");
            }
   if (Controller.UPvr_GetKeyDown(0, Pvr_KeyCode.TRIGGER ))
            {
                Debug.Log("TRIGGER键按下");
            }
            //得到触摸点的位置
            Vector2 touch_position = Controller.UPvr_GetTouchPadPosition(0);//获取触摸点的位置
            float xtouch_Position =touch_position.x;//获取触摸点X的值
            Debug.Log("触摸点位置:" +touch_Position);

            //获取滑动方向
            SwipeDirection swipeDirection = Controller.UPvr_GetSwipeDirection(0);//移动的方向
            if (swipeDirection==SwipeDirection.SwipeLeft)//获取到了滑动方向,向左
            {
                Debug.Log("向左滑动");
            }
        }
        else
        {
            return;
        }

        //头显的控制器
        if (Input.GetKeyDown(KeyCode.Joystick1Button0))
        {
            Debug.Log("头显的确定键被按下");
        }
        //注:Input.GetKeyDown(KeyCode.Joystick1Button0)在PICO二代设备上正常使用,但使用一代设备测试时无反应,一代设备可用  Input.GetButton("Fire1") 代替Input.GetKeyDown(KeyCode.Joystick1Button0);
    }
}
//引用using Pvr_UnitySDKAPI;

PICO开发时常见的问题

//TODO
1.打包后黑屏问题
原因:
原因一:Color Space中,选择Linear,且Blit Type没选择Never.(Linear渲染效果,感觉比Gamma细腻,但性能消耗会大一些).

解决:在这里插入图片描述在这里插入图片描述

原因二:Graphics APIs暂不支持Vulkan,对于OpenGLES2,OpenGLES3,开发者需要按照需求选择。
解决: 选项位置参考上一个原因一解决中位置.
在这里插入图片描述
2.切换场景时手柄丢失问题
解决:确保手柄预制体位置正确,没有因切换场景而被删除.

3.打包后闪退问题
原因一:上述黑屏问题也可能会导致这个原因产生,
解决方案参考上述黑屏问题.

原因二:Unity导入其他插件后可能使得Android Manifest文件被修改,
解决:通过测试打包PICO SDK自带Demo场景是否闪退及Log具体报错内容,判断是否是Android Manifest文件更改导致,如果是可以删除并重新导入PICO SDK的Android Manifest文件,或者通过合并自己另外添加插件和PICO SDK插件的Android Manifest进行解决.

4.打包后切出再从后台返回时黑屏或VR视角不正常显示问题
解决:上述问题都有可能导致该问题发生.建议打包SDK 自带Demo场景测试是否正常.

5.无法正常打包APK问题
原因:常见有以下原因:
通用方法:根据报错复制百度谷歌查看解决方案.

Android JDK 版本不对
解决:下载对应版本的JDK即可
Android SDK版本不对
解决:下载对应版本的SDK即可

打包时Buil System 选择为Gradle(该选项需要自动配置的一个秘钥,Unity自带,多数可能正常打包)
解决:切换为Interal即可解决.
在这里插入图片描述
在这里插入图片描述

个人建议:进行PICO VR项目开发前,花半个小时或一个小时快速阅读一遍下载SDK时带的说明文档,可以有效避免很多问题.并减少压根找不到任何问题抓掉头发的风险.

声明:本文为个人笔记,用于个人学习研究使用非商用,内容为个人研究及综合整理所得,若有违规,请联系本人,违规必改。
官方链接
[1]: https://www.pico-interactive.com/
PicoVR Unity SDK下载链接
[2]:https://developer.pico-interactive.com/sdk
Android Studio 下载链接
[3]:http://www.android-studio.org/
PICO 性能优化建议
[3]:https://blog.csdn.net/weixin_45532761/article/details/106421314

本人一年PICO VR相关的开发经验了。曾遇到各类PICO相关Bug。未在本文一一显示,如有不懂或相关问题。可留言。

  • 18
    点赞
  • 83
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 55
    评论
评论 55
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ۓ明哲ڪ

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值