VR基础

您所在的位置:网站首页 手柄摇杆常见问题 VR基础

VR基础

2023-09-18 03:47| 来源: 网络整理| 查看: 265

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接入前准备工作

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

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

本人为64位已拖入

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

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

开发平台设置,需为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。未在本文一一显示,如有不懂或相关问题。可留言。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3