赞
踩
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)
下载PICOVR SDK,可直接百度搜索(文末附SDK下载链接);
导入PicoVR_Unity_SDK (根据自己电脑系统版本选择对应的64或32位),直接拖入Unity;
将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版本相对应)。至此平台设置完成(若报错请百度详情)。
仅对常用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;
//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 © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。