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位VR基础——PicoVR SDK接入及使用整理_第1张图片

  4. 将SDK中的Pvr_UnitySDK 拖入场景中。该预制体位VR头盔所在物体。内含摄像机(将主场景摄像机删除仅保留预制体中的摄像机)SDK摄像机接入完成。VR基础——PicoVR SDK接入及使用整理_第2张图片
    5.Pvr_Controller /Prefabs文件夹下ControllerManager预制体为手柄控制器预制体。
    根据手柄数量将对应的预制体拖入右侧Inspector面板中(非必须)。控制器接入成功。VR基础——PicoVR SDK接入及使用整理_第3张图片
    剩余两个文件夹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 接入完成VR基础——PicoVR SDK接入及使用整理_第4张图片

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

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;

声明:本文为个人笔记,用于个人学习研究使用非商用,内容为个人研究及综合整理所得,若有违规,请联系本人,违规必改。
官方链接
[1]: https://www.pico-interactive.com/
PicoVR Unity SDK下载链接
[2]: http://dev.picovr.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。未在本文一一显示,如有不懂或相关问题。可留言。

你可能感兴趣的:(VR基础——PicoVR SDK接入及使用整理)