Unity之OpenXR+XR Interaction Toolkit接入Pico VR一体机

一.前言

Pico VR 一体机是目前国内比较流行的VR设备之一,PICO成立于2015年3月,于2021年9月并入字节跳动。最新推出的Pico4一体机售价只有2400左右,这让很多家庭都入手了Pico设备,VR一体机的功能包括:VR全景视频,VR运动,VR游戏等等。我们今天就来通过Unity最新的OpenXR标准来接入Pico VR SDK。

二.准备工作

PICO XR 官网
PICO XR 开发者官网
[PICO Unity Integration SDK 接入文档] (https://developer-global.pico-interactive.com/document/unity/chapter-overview/)
我们可以先大致浏览一下官网,然后下载最新的PICO Unity Integration SDK
(基于OpenXR的PICO Unity OpenXR Plugin插件,目前还是一个非正式版本,不建议使用。)

创建一个3D(URP)的Demo工程,然后切换到Android平台(Pico一体机是安装的APK,可以理解为是头戴的Android设备)
好了,准备工作完毕。

三.安装插件

插件下载到本地后是一个压缩包:PICO Unity IntegrationSDK-214-20230302.zip,我们解压缩到本地,如下目录所示:
在这里插入图片描述
这是一个Unity的Package,我们可以通过PackageManager来加载本地的Package来加载(也可以直接复制到工程内。)
如下图所示,选择Add package from disk…然后找到上面的解压文件夹,点击package.json即可。
在这里插入图片描述
导入后,如下所示:
在这里插入图片描述
由于Pico sdk使用了最新的Unity Open XR标准接口进行开发,所以它使用了Unity最新的Input System,这里提示我们是否进行重启编辑器开启最新的InputSystem。我们选择Yes即可。
此时Unity会进行短暂加载,并重新启动。

(注意,如果没有切换到Android平台,这里可能会有警告提示,请注意切换到Android Platform)

重新启动后,会提示一个Pico 的PXR SDK的设置界面,提示我们输入AppId,我们可以在Pico的开发者官网申请账号并新建App获得AppId,也可以把Use Entitlement Check的开关给关闭然后点击Apply即可完成Pico的设置
在这里插入图片描述

四.安装XR Interaction Toolkit

我们打开PackageManager,点击+号,选择Add package by name。
在这里插入图片描述
然后输入:com.unity.xr.interaction.toolkit
在这里插入图片描述
这样可以直接安装最新版本的XR Interaction Toolkit插件。(如果通过Package的目录安装可能不是最新版本。)
安装完后,我们手动把它的Samples包给导入进来。如下图所示:
在这里插入图片描述

五.PICO XR配置

在ProjectSetting中选择XR Plugin Management,然后勾选PICO
在这里插入图片描述
好了,到此基本配置就完毕了,如果我们有Pico的设备,可以直接打包Samples中的DemoScene试一试。
如果我们想通过编辑器测试,那么需要用的XR Device Simulator,这个在XRInteraction Toolkit中是有的。如下图所示:
在这里插入图片描述
我们可以直接拖拽到场景中,也可以通过ProjectSetting-> XR Interaction Toolkit配置自动加载,如下图所示:
在这里插入图片描述
但是注意,如果 你要使用了XR Device Simulator,那么就只能在编辑器模式下跑,如果要运行VR一体机真机,那么请把它XR Device Simulator给勾选掉,否则他会影响真机的运行。

好了,如果你想 运行Sample中的Demo,那么到此就配置完成了。因为它的XR Origin已经帮我们配置好了
在这里插入图片描述

六.创建XR Origin

上边使我们运行示例的Demo,它的XR Origin是帮我们配置好了的。下面我们自己来添加 XR Origin组件。
1.新建一个场景
2.在Hierarchy面板下,右键点击XR->XR Origin(VR)创建。
在这里插入图片描述
3.配置XR Origin(VR)的Hand Controller
我们创建完后,如下图所示:
在这里插入图片描述
注意,虽然创建了,但不是立刻能使用。因为我们前面说过,OpenXr使用了Unity最新的InputSystem系统,我们这里的手柄控制器HandController使用的当然也是新版的InputSystem。我们需要给它指定XR Interaction Toolkit默认配置好的InputSystem的配置,如下图所示:
在这里插入图片描述
想要指定这些配置给我们的HandController控制器,有两种方式。

方式一:手动配置

如下图所示,我们分别点击LeftHand Controller和Right Hand Controller,然后点击红框标记的按钮,在弹出的选择框中,选择对应的手的配置。
在这里插入图片描述

在这里插入图片描述

方式二:自动配置

我们知道Unity有一个Preset预设功能,Preset预设允许我们将组件、资源或 Project Settings 窗口的属性配置保存为预设资源。然后,可以使用此预设资源将相同的设置应用到不同的组件、资源或 Project Settings 窗口。
接下来我们就是把XR Interaction Toolkit的这些Controller相关的配置都保存成Preset,然后当我们创建XR Origin时,它就会自动帮我们匹配对应的设置了。
选中XR Interaction Toolkit自带的每一个Controller的Preset,然后添加到Prese Manager系统默认配置中。
如下所示:
点击Add to ActionBasedContinuousMoveProvider default按钮
在这里插入图片描述
全部点击完毕后,打开PresetManager面板,会看到如下所示的结果:
注意:左右手的配置需要我们手动给他加上Filter Name,这样系统就可以自动通过Left和Right关键字帮我们分别给左右手设置不同的Preset了。
在这里插入图片描述
好了,到此就配置好了,我们再创建XR->XR Origin(VR)后,会发现Hand Controller上面已经自动帮我们设置好了Preset。

猜你喜欢

转载自blog.csdn.net/qq563129582/article/details/130334028