使用UnityXR配置PICO开发环境

news2024/9/25 9:36:25

效果展示:

在这里插入图片描述
一、说明

本文环境搭建测试基于Unity2021.3.26版本进行的,插件版本为当前官方最新版本PICO_SDK_v2.1.5,根据官方的描述,PICO Unity Integration SDK v2.x.x 系列是长期维护版本,支持 PICO Neo3 和 PICO 4 全系列设备。SDK 支持的最低 Unity 编辑器版本为 2020.3.21,支持的最高 Unity 编辑器版本为 2022.2.14。

插件可以官网下载,这边提供一个快速链接

PICO_SDK_v2.1.5下载地址

二、环境搭建过程

1、创建一个unity项目,项目名称和存储目录不能包含中文字符。

2、导入 PICO Unity Integration SDK

①前往 SDK 下载中心,下载最新版本的 SDK。

②解压所下载的 SDK 压缩包。
你将会得到一个包含 package.json 文件的文件夹,把整个文件夹放置在工程文件路径Assets同级目录里面(目的是迁移文件的时候,能找到文件)。

③返回 Unity 编辑器页面。

④在上方菜单栏处,选择 Windows > Package Manager。

⑥在 Package Manager 窗口中,点击 + > Add package from disk。

在这里插入图片描述

⑦选择 package.json 文件并导入。
导入完成后,你将看到 PXR SDK Setting 窗口(或者其他弹窗都点接受即可,自动帮我们配置一些必备的开发环境)。

⑧升级 XR Interaction Toolkit,前往 Windows > Package Manager > XR Interaction Toolkit。展开右侧的 Samples 面板。点击 Import,导入 Starter Assets、XR Device Simulater 和 Tunneling Vignette。

在这里插入图片描述

3、启用 PICO XR 插件

启用 PICO XR 插件,以便在应用内接入 SDK 提供的 XR 能力。步骤如下:

①从上方菜单栏处,选择 Edit > Project Settings。

②在 Project Settings 窗口中,点击 XR Plug-in Management > 安卓设置图标。

在这里插入图片描述

③勾选 PICO。(注意:请勿勾选其他平台提供的插件,否则应用将无法在 PICO 设备上正常运行。)

4、完成其他项目设置

其他设置部分主要影响应用的基础编译方式和支持系统版本。需要完成以下设置:

①Minimum API Level:将 Minimum API Level 设置为 Android 10.0 (API Level 29)。若低于该版本,构建应用时会报错。

②Target API Level:将 Target API Level 设置为 Automatic (highest installed)。否则将报错。

③Scripting Backend:将 Scripting Backend 设置为 IL2CPP。与 Mono 相比,IL2CPP 可以更好地支持跨平台应用开发。IL2CPP 后端可以将 MSIL(Microsoft Intermediate Language)代码(例如脚本中的 C# 代码)转换为 C++ 代码,然后通过 C++ 代码生成一个兼容所选开发平台的原生二进制文件(例如 .exe、.apk 或 .xap)。

④Target Architectures:设置应用的运行环境(即 CPU)。将 Target Architectures 设置为 ARM64,并取消勾选 ARMv7。ARM64 允许应用在 64 位环境中运行,以实现更好的应用性能。此外,64 位应用拥有更高的寻址空间(超过 4GB),且支持动态内存分配。

5、添加 XR 摄像机,配置手柄控制器

①在 Hierarchy 窗口中,右击默认添加的 Main Camera,然后点击 Delete 将其删除。

②点击 + > XR > XR Origin (VR),将 XR Origin 添加至场景。

在这里插入图片描述

XR Origin 物体包含以下元素:

在这里插入图片描述

元素说明
XR Origin主物体,负责挂载管理控制脚本。
Camera Offset同步头戴 6Dof 数据,使摄像头和手柄能够在场景中移动。
Main Camera主摄像机,负责捕捉和生成展示在显示器上的画面。
LeftHand Controller左手柄节点。
RightHand Controller右手柄节点。

③选中 XR Origin。Inspector 窗口中将显示 XR Origin 挂载的组件和脚本。点击 Inspector 窗口底部的 Add Component 按钮。搜索 PXR_Manager 脚本,然后双击将其添加。

④接下来配置手柄控制器显示。在 Hierarchy 窗口中,展开 XR Origin > Camera Offset。选中 LeftHand Controller。在 Inspector 窗口中,点击 XR Controller (Action-Based) 面板右上角的 预设 图标。

在这里插入图片描述

你将看到 Select Preset 窗口。双击添加 XRI Default Left Controller 设置文件,导入默认左手柄设置。

在这里插入图片描述

在 XR Controller (Action-Based) 脚本区域找到 Model Prefab 设置项。在 Project 窗口中,前往 Packages > PICO Integration > Assets > Resources > Prefabs。将 LeftControllerModel 拖至 Model Prefab 中。

在这里插入图片描述

按相同步骤配置 RightHand Controller。

⑤由于 PICO Unity Integration SDK 使用了最新的 Unity 输入系统,所以需要添加 Input Action Manager 脚本来控制输入,步骤如下:

(1)在 Hierarchy 窗口中,选中 XR Origin。

(2)点击 Inspector 窗口底部的 Add Component 按钮。

(3)搜索 Input Action Manager 脚本,然后双击将其添加。

(4)在 Input Action Manager 脚本区域,展开 Action Assets 列表,然后点击 +,添加 Element 0 配置项。再次点击圆圈图标。

在这里插入图片描述

你将看到 Select InputActionAsset 窗口。

双击 XRI Default Input Actions 将其添加至 Element 0 配置项。

在这里插入图片描述

至此,基础 XR 场景搭建完成。

6、打包发布APK,在PCIO里面测试

有疑问欢迎vx咨询159-7084-3394

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/657751.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

VFP提取源码中各项信息,快速转换语言,时间比钱值钱

您辛苦了很长时间,编写了一套很不错的管理软件,行业使用很不错,代码行10万,有一天一位外国客户找到您,说想购买使用您的软件,但显示语言需要是英语的,三五天内就要使用,你怎么办&a…

Windows 禁止 IE 自动跳转 Edge「整合方案」

前言 IE 已经合并进 Edge 浏览器,IE「正式入土」 RESPECT ​ 昨晚,公司系统更新(Edge)结束后,原本正常运行的 RPA 全部下线,原因如图: ​ 早上起来,又是充满希望的一天,于…

Autoware.universe中激光雷达感知部分简述,一看就懂,不懂请打我

文章目录 整体把握各部分阐述滤除多余的检测框 总结 整体把握 Autoware.universe中激光雷达感知部分的主要流程为: 将原始点云数据输入地面滤波器和深度学习检测算法,分别得到地面滤波后的点云points_no_ground和Object检测框(该检测框内包含中心点、位…

端午赠礼:软件测试万能面试脚本,一节课学会软件测试,欸嘿

​ 写在前面: 又到端午了,四舍五入接下来马上要过年了,新一波的跳槽旺季马上来临,不知道你是不是已经安于现状,还是蓄势待发呢?最近我和我的同事们一顿讨论,拟写了大家可能会遇到的面试情况&…

大数据基础平台实施及运维

一、大数据介绍 1、为什么使用大数据技术 数据量越来越大,数据分析的实时性越来越强,数据结果应用范围越来越广。(从用户的访问量、量、访问时间、访问频率,市场可以得到很多信息) 2、大数据的定义 数据收集、数据…

随机数发生器设计(五)

随机数发生器设计(五)- 重播种、输出、自测试 4 重播种函数5 输出函数6 自测试 4 重播种函数 重播种函数利用熵输入及额外输入更新种子,同时对内部状态进行更新。重播种操作函数如下: 函数定义:SM3_RNG_Reseed(workin…

【数据库原理与实践】记忆型章节作业汇总

填空题部分: Chp 8 安全性与完整性 part 1: 数据库的安全性是指保护数据库以防止不合法的使用所造成的( 数据泄露、更改或破坏 )。计算机系统有三类安全性问题,即( 技术安全 )、管理安全和…

【gitflow】 概念基本介绍

gitflow 简介 什么是gitflow? 我们大家都很会用git,但是我们很少去关心我们要怎么用branch和版本控制。 只知道master是第一个主分支,其他分支都是次要分支, 那你知道如下的问题如何回答吗? 如何保证主分支的稳定…

vue3+ts封装axios 配置BASE_URL拦截器 单个接口的拦截 全局拦截器

1. config.ts 书写BASE_URL ( service/request/config.ts) BASE_URL书写的方式很多 1: 直接在axios.create里面写死 ,在打包或者测试的时候手动进行修改BASE_URL 2:新建一个文件 在文件里面判断当前的环境 进行赋值BASE_URL 3:定义.env文件 …

线程间同步

线程间资源竞争 int count 0;void * add(void *arg){int val,i;for(i 0;i< 5000;i ){val count;printf("%p: %d\n",pthread_self(),val);count val 1;}return nullptr; }int main(){pthread_t tida,tidb;pthread_create(&tida,NULL,add,NULL);pthread_c…

python爬虫进行AES解密遇到的问题

1、TypeError: Object type <class ‘str’> cannot be passed to C code 报错如下&#xff1a; File "C:\Python311\Lib\site-packages\Crypto\Util\_raw_api.py", line 143, in c_uint8_ptrraise TypeError("Object type %s cannot be passed to C cod…

【改进算法】混合鲸鱼WOA和BAT算法(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

0101B站学习视频发留言找小伙伴-实用小工具系列

文章目录 1 起因2 找方法3 bilibili_api4 实现5 知识点结语 1 起因 经常在B站看学习视频&#xff0c;但是一个人学习&#xff0c;偶尔在想&#xff0c;我学的怎么样&#xff1f;有没有用&#xff1f;有没有谁可以一起交流下&#xff1f;好在现在有互联网&#xff0c;可以极大的…

WiFi各协议理论速度

一、总览 二、11b到11g提升点 802.11g工作在2.4G频段下&#xff0c;能够支持OFDM和CCK两种调制方式&#xff0c;提供16-QAM、64-QAM、BPSK和QPSK四种编码方式&#xff0c;我们通常说的54Mbps速率就是在2.4G频段下&#xff0c;通过OFDM调制&#xff0c;采用64-QAM编码的情况下实…

表达式和语句

表达式 可以被求值的代码&#xff0c;并将其计算出一个结果 语句 一段可以执行的代码&#xff0c;是一个行为&#xff0c;例如分支语句和循环语句 三大流程控制语句 以前写的代码&#xff0c;写几句就从上往下执行 &#xff0c;---顺序结构 有时候要根据条件 选择执行代码…

Spring源码之PostProcessor解析

系列文章目录 文章目录 系列文章目录前言一、PostProcessor是什么二、PostProcessor的作用三、Spring框架中有哪些PostProcessor呢BeanPostProcessorBeanFactoryPostProcessorInstantiationAwareBeanPostProcessorDestructionAwareBeanPostProcessorMergedBeanDefinitionPostPr…

Pinia 和 Vuex ,理解这两个 Vue 状态管理模式

Pinia和Vuex一样都是是vue的全局状态管理器。其实Pinia就是Vuex5&#xff0c;只不过为了尊重原作者的贡献就沿用了这个看起来很甜的名字Pinia。 本文通过Vue3的形式对两者的不同实现方式进行对比&#xff0c;让你在以后工作中无论使用到Pinia还是Vuex的时候都能够游刃有余。 …

Linux下在日志中打印时间戳

1、背景介绍&#xff1a;在实验过程中需要记录任务运行情况&#xff0c;为此需要在日志中增加时间戳打印信息&#xff0c;方便事后查看。 2、实现方法 示例如下&#xff1a; #include <stdio.h> #include <time.h> #include<string.h>void print_debug_me…

如何在iPhone上用ChatGPT替换Siri

To use ChatGPT with Siri on an iPhone or iPad, get an OpenAI API key and download the ChatGPT Siri shortcut. Enter your API key in the shortcut setup and select the GPT model you want to use, then hit “Add Shortcut.” Trigger the shortcut manually first t…

FreeRTOS实时操作系统(二)系统文件代码学习

文章目录 前言系统配置任务创建任务创建删除实践 前言 接着学习正点原子的FreeRTOS教程&#xff0c;涉及到一些详细的系统内文件代码 系统配置 可以通过各种的宏定义来实现我们自己的RTOS配置&#xff08;在FreeRTOSconfig.h&#xff09; “INCLUDE”&#xff1a;配置API函数…