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

news2025/1/24 8:32:51

文章目录

  • 📕教程说明
  • 📕新版 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.coloradmin.cn/o/1347144.html

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

相关文章

Apollo自动驾驶:改变交通运输的游戏规则

前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 ChatGPT体验地址 文章目录 前言1. Apollo缓存层2. 本地状态管理库3. 离线同步和冲突解决4. 离线数据同步和离线优先策略结论 📲🔌 构建离线应用:Apollo…

Decorator装饰模式(单一责任)

Decorator(装饰模式:单一责任模式) 链接:装饰模式实例代码 解析 目的 在某些情况下我们可能会“过度地使用继承来扩展对象的功能”,由于继承为类型引入的静态特质,使得这种扩展方式缺乏灵活性&#xff…

ZYNQ 7020 之 FPGA知识点重塑笔记一——串口通信

目录 一:串口通信简介 二:三种常见的数据通信方式—RS232串口通信 2.1 实验任务 2.2 串口接收模块的设计 2.2.1 代码设计 2.3 串口发送模块的设计 2.3.1 代码设计 2.4 顶层模块编写 2.4.1 代码设计 2.4.2 仿真验证代码 2.4.3 仿真结果 2.4.4…

小信跳房子的题解

原题描述: 时间:1s 空间:256M 题目描述: 小信在玩跳房子游戏,已知跳房子游戏的图表现为一颗完美的具有个节点的二叉树。从根节点依次编号为。节点的左子节点编号为,右子节点编号为。 小信从从节点出发&…

万字盘点 Android 领域在 2023 年的重要技术:AI, 14, Compose, 鸿蒙...

AICore 2022 年底横空出世的 GPT-3.5 引发了全球的大模型 LLM 狂潮。作为在 AI 领域耕耘多年的巨头,Google 自然不会坐视不管,于 2023 年底之际发布了超越 GPT-4 的 Gemini 系列模型,其在多模态领域的表现令无数人震撼。 而对于 Android 开发…

接口自动化测试实战经验分享(附教程)

作为测试,你可能会对以下场景感到似曾相识:开发改好的 BUG 反复横跳;版本兼容逻辑多,修复一个 BUG 触发了更多 BUG;上线时系统监控毫无异常,过段时间用户投诉某个页面无数据;改动祖传代码时如履…

HTML教程(1)——概述和第一个网页

一、什么是HTML HTML 是用来描述网页的一种语言。 HTML 指的是超文本标记语言 (Hyper Text Markup Language)HTML 不是一种编程语言,而是一种标记语言 (markup language)标记语言是一套标记标签 (markup tag)HTML 使用标记标签来描述网页 二、什么是HTML 标签 H…

你真的懂Hello World!吗?(编译与链接,静态链接与动态链接)

💫Hello World! 对于大家来说Hello World!应该是最熟悉不过的一句话,我们从Hello World!走进了计算机的世界,但是你真的了解Hello World!吗?你又思考过它背后蕴含的机理吗?他是怎么从代码变成程序的你真的思考过吗&…

LINUX 抓包工具Tcpdump离线安装教程

本次教程基于内网环境无法访问网络使用安装包进行安装抓包工具 1、首先给大家看下一共有6个安装包,依次进行解压,包我就放到csdn上了,需要的可以联系我进行下载 2打包然后传到服务器任意一个目录下,进入到当前目录,然后…

第11章 访问维护

上一章讨论了在目标主机上提升权限的方法。本章将介绍在滲透测试过程的最后一个环节,即帮助我们随时进入目标主机的方法。 在完成了提升权限的阶段性工作之后,我们应当建立一种机制,以维持对目标主机的控制权。这样一来,即使我们…

GPT3.5 改用 GPT4 价格翻了30倍 如何破局? GPT 对话成本推演

场景介绍 假设你搭建了一个平台,提供 ChatGPT 3.5 的聊天服务。目前已经有一批用户的使用数据,想要测算一下如果更换 GPT 4.0 服务需要多少成本? 方案阐述 如果是全切,最简单粗暴的方案就是根据提供 ChatGPT 3.5 消费的金额乘…

Rust学习笔记004:Rust的所有权机制

内存相关的基础知识 不同语言的内存管理系统 栈和堆 堆和栈的使用 引出所有权方案 String类型 Rust 的所有权机制 Rust 的所有权机制是一种内存管理系统,它允许在编译时通过所有权、借用和生命周期来确保内存安全,同时避免了垃圾回收的运行时开销。这些…

2023-12-21 LeetCode每日一题(美丽塔 II)

2023-12-21每日一题 一、题目编号 2866. 美丽塔 II二、题目链接 点击跳转到题目位置 三、题目描述 给你一个长度为 n 下标从 0 开始的整数数组 maxHeights 。 你的任务是在坐标轴上建 n 座塔。第 i 座塔的下标为 i ,高度为 heights[i] 。 如果以下条件满足&a…

软件工程PPT 笔记摘录(2)

分析软件需求 UML 提供了用例图来分析和描述用例视角的软件需求模型 UML 提供了交互图和状态图来描述行为视角的软件需求模型 UML 提供了类图来描述和分析业务领域的概念模型 顺序图:强调消息传递的时间序 通信图:突出对象间的合作 类图&#xff0…

【SAP-FICO】--总账标识配置路径OBXR

FICO业务需求: F-02,财务会计凭证填写09客户A时,带出的总账标识为可编辑。 需求截图: 第一步:了解需求 首先,我们要明白,财务凭证生成,是分多种类型(不同类型的凭证&a…

【深度学习:Few-shot learning】理解深入小样本学习中的孪生网络

【深度学习:Few-shot learning】理解深入小样本学习中的孪生网络 深入理解孪生网络:架构、应用与未来展望小样本学习的诞生元学习小样本学习孪生网络的基本概念孪生网络的细节Triplet Loss架构特点关键组件训练过程主要应用领域未来展望示例图片结论 备注…

[JS设计模式]Prototype Pattern

Prototype pattern Prototype pattern可便于同类型的多个对象共享属性。原型(prototype)是JS原生的对象,其他对象可以通过原型链(prototype chain)来访问原型。单独看这句描述可能还是有点儿抽象,下面通过…

【HarmonyOS】ArkTS语言介绍与组件方式运用

从今天开始,博主将开设一门新的专栏用来讲解市面上比较热门的技术 “鸿蒙开发”,对于刚接触这项技术的小伙伴在学习鸿蒙开发之前,有必要先了解一下鸿蒙,从你的角度来讲,你认为什么是鸿蒙呢?它出现的意义又是…

OSG绘制视锥体

最近要来实现一个相机位姿态可视化的需求&#xff0c;不想使用pangolin&#xff0c;不好集成&#xff0c;想用osg来做可视化。以下是demo效果。 代码实现&#xff1a; // Cone_of_vision.cpp : 定义控制台应用程序的入口点。 //#include "stdafx.h" #include <os…

Angular进阶之六:Progressive rendering

简介 Progressive Rendering 是一种提高 Web 应用性能的方法&#xff0c;允许页面在加载过程中逐步呈现&#xff0c;以提高用户体验。在本文中&#xff0c;我们将探讨如何在 Angular 中通过自定义指令实现 Progressive Rendering&#xff0c;特别是处理从服务器获取大量数据的…