Unity 新版 Meta XR SDK 无法导入解决方法

文章目录

  • 📕教程说明
  • 📕新版 SDK 说明
  • 📕从 Meta 官网导入开发包
    • ⭐依赖包
    • ⭐如何导入
    • ⭐导入后包存放在哪里了?
    • ⭐场景样例文件去哪了?

此教程相关的详细教案,文档,思维导图和工程文件会放入 Spatial XR 社区。这是一个高质量 XR 社区,博主目前在内担任 XR 开发的讲师。此外,该社区提供教程答疑、及时交流、进阶教程、外包、行业动态等服务。

社区链接:
Spatial XR 高级社区(知识星球)
Spatial XR 高级社区(爱发电)

在这里插入图片描述


📕教程说明

配套的视频链接:MetaXR SDK无法导入的解决方法

以后 Meta 提供的 Unity 开发 SDK 会更新到 Meta XR SDK 中,原来的 Oculus Integration 不再更新。但是在发布这篇博客的这段时间内,如果从 Unity 的资源商店导入 Meta XR SDK,会报错

[Package Manager Window] Error adding package: com.meta.xr.sdk.all@60.0.0.
undefined == true
UnityEditor.EditorApplication:Internal_CallUpdateFunctions ()

如果你和我遇到了一样的问题,不要担心,本文提供了另一种导入方式:从 Meta 官网导入。

下载链接:https://npm.developer.oculus.com/ (需要连外网)

官方对每个开发包的介绍以及版本更新说明:https://developer.oculus.com/downloads/unity/

我也会把下载的开发包分享到 Spatial XR 社区里,社区成员可以直接从社区里下载。


📕新版 SDK 说明

现在 Meta 提供的 Unity 开发 SDK 已经从原来的 Oculus Integration 改成了 Meta XR SDK。在发布这篇博客的时候,Meta XR SDK 已经更新到了 v60 版本。我之前出的 Quest 一体机开发教程使用的是 Oculus Integration v57 版本,当时我们是从 Unity Asset Store 资源商店里导入的,我们可以打开资源商店看一下。

在这里插入图片描述

这个 Oculus Integration 目前是处于弃用的状态,这个弃用指的是这个包只更新到 v57 版本,然后v57 之后的版本会更新到Meta XR SDK中。不过目前来说,之前的系列教程中介绍的相关物体和脚本配置是没有发生变化的,比如说实现抓取功能,那么在玩家物体和可抓取物体身上需要添加哪些东西还是一样的,这些部分大家还是可以参考之前的教程,之后的教程我就会使用 Meta XR SDK 来进行讲解。那么从 Oculus Integration 转变成Meta XR SDK,只是包的导入方式和一些资源脚本的存放位置发生了一些变化。如果一些物体和脚本的使用方式发生了明显的变化,我之后会出新的教程进行说明。如果使用方式是一样的,那么大家依然可以跟着这个系列教程进行学习。

因为原本的 Oculus Integration 集成了 Meta 所有的 SDK,所以它叫 Integration。那么这种方式其实也有缺点,因为之后 Meta 为开发者推出的开发功能会越来越多,如果所有的功能都集成到一个整合包里,会导致这个开发包越来越大。所以 Meta 把不同功能的开发包拆分成一个个单独的包,这样开发者只需要导入开发所需要的包,没有用到的包就不需要导入了,这样能够减少包体大小,然后让不同的包分工明确。大家可以看到 Unity 的资源商店里的这些开发包,它们就是从 Oculus Integration 中拆分出来的包,比如 Meta XR Interaction SDK,我们最近学的 Quest 手势追踪交互相关的资源和脚本大部分就来自于这个包。如果你想要将所有的功能一起导入,你也可以选择这个Meta XR All-in-One SDK,它和 Oculus Integration 是类似的,也是一个整合包(链接:https://assetstore.unity.com/packages/tools/integration/meta-xr-all-in-one-sdk-269657#reviews)。实际上我们说的 Meta XR SDK 就是 Meta 各个功能的 SDK 的统称。

在这里插入图片描述

在这里插入图片描述

但是自从 Meta XR SDK v59 版本发布至写这篇文章的时候,Unity 资源商店中的 Meta XR SDK,不管是这个 All-in-One SDK,还是其他单独的开发包,都无法从 Unity 的 Package Manager 中导入到项目中。报错信息如下:

在这里插入图片描述

目前尚不清楚是不是 Unity 国服版的原因,如果你遇到了同样的问题,不要担心,这篇文章会介绍另一种导入方式:从 Meta 的官网导入。

下载链接:https://npm.developer.oculus.com/ (需要连外网)

官方对每个开发包的介绍以及版本更新说明:https://developer.oculus.com/downloads/unity/


📕从 Meta 官网导入开发包

在这里插入图片描述

可以直接点击每个包最右侧的下载按钮进行下载。

⭐依赖包

下载之后,在导入之前需要特别注意“依赖包”这个概念。如果一个包有依赖包,那么必须要先导入所有的依赖包,然后才能导入这个包

比如我们点开其中一个包,点击 Dependencies:

在这里插入图片描述

比如这个 .interaction.ovr.samples 包在导入之前需要先导入 .interaction.ovr 包和 .sharedassets 包。一般来说,我们只需要关注 com.meta.xr 前缀的依赖包,它们能从 Meta 官网上下载。如果是前缀 com.unity 的包,基本上是 Unity 自带的。

不过即使你忘了导入依赖包,在导入 Unity 的时候 Unity 也会给你提供报错信息:

在这里插入图片描述

常用包的依赖包:

包名依赖包
com.meta.xr.sdk.core
com.meta.xr.sdk.interaction (Interaction SDK)com.unity.textmeshpro@3.0.6,com.unity.ugui@1.0.0 (Unity的包是Unity自带的)
com.meta.xr.sdk.interaction.ovrcom.meta.xr.sdk.interaction,com.meta.xr.sdk.core
com.meta.xr.sdk.sharedassetscom.unity.textmeshpro@3.0.6,com.unity.ugui@1.0.0
com.meta.xr.sdk.interaction.ovr.samplescom.meta.xr.sdk.interaction.ovr,com.meta.xr.sdk.sharedassets
com.meta.xr.mrutilitykitcom.unity.textmeshpro@3.0.6,com.unity.ai.navigation@1.1.4,com.unity.nuget.newtonsoft-json@3.0.2,com.meta.xr.sdk.core,com.meta.xr.sdk.interaction,com.meta.xr.sdk.interaction.ovr

⭐如何导入

打开 Unity 菜单栏的 Windows > Package Manager,点击左上角的 “+” 号,选择 Add Package from tarball,然后就可以导入从 Meta 官网上下载的 .tgz 后缀的包。

在这里插入图片描述
在这里插入图片描述

⭐导入后包存放在哪里了?

在这里插入图片描述
与 Oculus Integration 相比,Meta XR SDK 最主要的区别就是:原来的 Oculus Integration 是将所有资源存放在 Assets/Oculus 文件夹下;Meta XR SDK 将包的大部分资源,例如 Prefab,脚本等存放在了 Packages 文件夹下。而 Assets/Oculus 文件夹下只留了一个全局的配置文件。

在这里插入图片描述

因此,我们在 Project 窗口中搜索 Meta XR SDK 的资源时,需要选择 “In Packages” 或者 “All”,默认是只在 Assets 文件夹下搜索。

在这里插入图片描述

⭐场景样例文件去哪了?

当你导入了 com.meta.xr.sdk.interaction.ovr.samples 这个包时,你会发现 Packages 文件夹的这个包里找不到场景文件。这个时候需要打开 Package Manager,找到对应的包,点击 Samples 手动导入:

在这里插入图片描述

导入后的场景文件位于 Assets/Samples/Meta XR Interaction SDK OVR Samples 的子文件夹下。

其他的带有 Samples 的包也是类似的导入方式。

此外,Meta 也为开发者提供了一个 StarterSamples 样例工程:https://github.com/oculus-samples/Unity-StarterSamples,其中也包含了一些可供学习的场景。

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Java进阶篇】Java中的枚举的概念、有什么特点和好处

✔️Java枚举的概念、特点和好处 ✔️枚举的概念✔️枚举的特点✔️枚举的好处✔️拓展知识仓✔️枚举如何实现的? ✔️枚举的概念 Java枚举是一种特殊的数据类型,它的每一个值都映射到Enum类的构造函数中,具有固定数量的常量值。枚举类型具有…

IRQ Handler 的使用——以USART串口接收中断分别在标准库与HAL库版本下的举例

前言: 1.中断系统及EXTI外部中断知识点见我的博文: 9.中断系统、EXTI外部中断_eirq-CSDN博客文章浏览阅读301次,点赞7次,收藏6次。EXTI(Extern Interrupt)外部中断EXTI可以监测指定GPIO口的电平信号&…

【C++】命名空间、输入输出、缺省参数和函数重载详解

文章目录 前言命名空间命名空间的定义命名空间的使用 C输入输出缺省参数缺省参数定义缺省参数分类 函数重载函数重载的概念函数名修饰规则extern "C"的使用 总结 前言 提示:这里可以添加本文要记录的大概内容: C 是一门强大而灵活的编程语言…

【Redis技术专区】「原理分析」探讨Redis6.0为何需要启用多线程

探讨Redis 6.0为何需要启用多线程 背景介绍开启多线程多线程的CPU核心配置IO多线程模式单线程处理方式多线程处理方式 为什么要开启多线程?充分利用多核CPU提高网络I/O效率响应现代应用需求 多线程实现启用多线程 最后总结 背景介绍 在Redis 6.0版本中,…

MD5算法

一、引言 MD5(Message-Digest Algorithm 5)是一种广泛应用的密码散列算法,由Ronald L. Rivest于1991年提出。MD5算法主要用于对任意长度的消息进行加密,将消息压缩成固定长度的摘要(通常为128位)。在密码学…

[C#]OpenCvSharp结合yolov8-face实现L2CS-Net眼睛注视方向估计或者人脸朝向估计

源码地址: github地址:https://github.com/Ahmednull/L2CS-Net L2CS-Net介绍: 眼睛注视(eye gaze) 是在各种应用中使用的基本线索之一。 它表示用户在人机交互和开放对话系统中的参与程度。此外,它还被用…

30 UVM Adder Testbench Example

1 Adder Design 加法器设计在时钟的上升沿产生两个变量的加法。复位信号用于clear out信号。注:加法器可以很容易地用组合逻辑开发。引入时钟和重置,使其具有测试台代码中时钟和重置的样子/风格。 module adder(input clk, reset, input [7:0] in1, in…

【日常聊聊】解决深度学习模型挑战:解释性与鲁棒性的平衡

🍎个人博客:个人主页 🏆个人专栏: 日常聊聊 ⛳️ 功不唐捐,玉汝于成 目录 前言 正文 1. 数据偏见: 介绍和解释: 解决方法: 2. 复制训练数据: 介绍和解决方法&am…

机器学习的分类与经典算法

机器学习算法按照学习方式分类,可以分为有监督学习(Supervised Learning)、无监督学习(Unsupervised Learning)、半监督学习(Semi-supervised Learning)、强化学习(Reinforcement Le…

Matlab技巧[绘画逻辑分析仪产生的数据]

绘画逻辑分析仪产生的数据 逻分上抓到了ADC数字信号,一共是10Bit,12MHZ的波形: 这里用并口协议已经解析出数据: 导出csv表格数据(这个数据为补码,所以要做数据转换): 现在要把这个数据绘制成波形,用Python和表格直接绘制速度太慢了,转了一圈发现MATLAB很好用,操作方法如下:…

托管在亚马逊云科技的向量数据库MyScale如何借助AWS基础设施构建稳定高效的云数据库

MyScale是一款完全托管于亚马逊云科技,支持SQL的高效向量数据库。MyScale的优势在于,它在提供与专用向量数据库相匹敌甚至优于的性能的同时,还支持完整的SQL语法。以下内容,将阐述MyScale是如何借助亚马逊云科技的基础设施&#x…

【嵌入式开发 Linux 常用命令系列 7.3 -- linux 命令行数值计算】

文章目录 linux 命令行数值计算使用 awk使用 bc 命令使用 Bash 的内置算术扩展使用 expr脚本命令实现 linux 命令行数值计算 在 Linux 命令行中,您可以使用多种方法来执行基本的数学运算。以下是一些示例: 使用 awk awk 是一个强大的文本处理工具&…