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


获取完整课程以及答疑,工程文件下载:
https://www.spatialxr.tech/


📕教程说明

配套的视频链接: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 ()

如果你和我遇到了一样的问题,不要担心。这个主要是 Unity 的版本导致的,如果你使用的是国际版(海外版)的 Unity,那么应该是能够正常从资源商店里导入的。但是如果你用的是国服版 Unity(中国大陆 ip 会默认重定向到 Unity 国内版的下载页面,国服版的 Unity 版本号后缀带有 c1),应该就会遇到这个报错。那么你可以参考本文提供的另一种导入方式:从 Meta 官网导入。或者可以下载海外版 Unity,链接:https://unity.com/download

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

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

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

导入 SDK 后可以按照这篇教程进行环境配置:Unity Meta Quest 一体机开发(二):前期准备和环境配置


📕新版 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 国服版的原因,经过测试,使用海外版 Unity 是能够正常导入的。如果你遇到了同样的问题,不要担心,这篇文章会介绍另一种导入方式:从 Meta 的官网导入。

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

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

国服版和海外版 Unity 版本号的区别:

在这里插入图片描述

国服版 Unity 版本后缀多了 c1


📕从 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,其中也包含了一些可供学习的场景。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YY-nb

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值