您遇到的是,较新版本的 Unity 支持包管理器,可以更轻松地安装和管理依赖项。较新版本的 Firebase SDK 可以选择利用这一点。
我不太清楚您的具体问题是什么,但有几条路线可以解决。
最简单的方法是单击“禁用注册表版”。如果您根本不想弄乱这个系统,只需单击此按钮并按照您的预期使用 Unity 包。
否则,您可以单击“添加选定的注册表”。这将启动一个有点复杂的过程,其中:
- Firebase 插件向 Unity 添加了一个“作用域注册表”(这是您在“之后”窗格中看到的代码)。这告诉 Unity Google 的包存储库。
- 然后插件会查找注册表中包含的任何包并将其卸载以避免包含两次。
- 插件将它卸载的包添加到您的包清单中。这使您可以使用“包管理器”窗口直接在 Unity 中维护和更新 Firebase 插件:
您想要这样做的原因有很多。首先,Firebase Unity SDK 在磁盘上是HUGE——甚至比您项目中的 SDK 大得多。原因是它为旧版 .NET3 项目和现代 .NET4 项目提供了每个 Firebase 库的冗余副本。每个unitypackage 还必须包含其所有依赖项——这意味着FirebaseCore 被冗余地包含在每个unitypackage 中。
其次,最让我感动的是,Firebase 插件太大无法在没有 Git LFS 的情况下放入 GitHub 存储库。这是因为支持 Linux 所需的一个或多个库比单个源文件大。当您使用包管理器时,这些东西不会出现在您的源存储库中(如果您不提交 Library/ 目录,那么您不应该这样做)保持您在云中的大小并使这种解决方法变得不必要。
第三,如我上面的屏幕截图所示,当您使用包管理器时,根据需要升级和降级 Firebase SDK 会更容易。您不再需要尝试记住您安装了哪些 Firebase 库,您可以在一个简洁的列表中看到它们!您还可以轻松卸载不需要的 Firebase 功能,而不必过多担心周围存在大量依赖项(您仍然需要手动清理一些本机插件)。
您也可以手动执行所有这些操作!您可以手动执行这些步骤,而不是下载 Unity SDK,outlined here。即你可以添加:
"scopedRegistries": [
{
"name": "Game Package Registry by Google",
"url": "https://unityregistry-pa.googleapis.com",
"scopes": [
"com.google"
]
}
]
到Packages/manifest.json 的末尾,如该弹出窗口中所示。然后以这种方式安装和管理 Firebase 插件,完全不用担心迁移。
编辑:
我还应该提到,如果您确实认为自己遇到了错误,那么负责您看到的对话框的系统称为“External Dependency Manager for Unity”。你可以file issues directly on its GitHub page。