首页 > 解决方案 > 如何在 Firebase 服务器上上传资产包?google 提供服务器上传可用于android / IOS 平台游戏的资产包?

问题描述

我已经从统一生成了资产包,我正在尝试将其上传到谷歌服务器,很可能我期待 firebase 提供这样的服务。我从过去两天开始尝试,但我没有找到将资产包上传到 Firebase 服务器的解决方案。而且我不确定谷歌是否为我们可以上传资产包文件的 android / IOS 游戏提供服务器服务。我还需要了解上传它的机制。

我过去尝试过亚马逊服务器,效果很好,但我想知道谷歌是否也提供这样的服务,如果它更有可能被使用的话。

简单代码(标准)用于从服务器下载资产包。

我想知道在firebase服务器或google服务器上从unity上传资产包文件的机制,当然我想听听与亚马逊服务器的比较。我还想在下载时获取下载资产包大小的百分比,以便用户可以知道他下载了多少数据以及剩下多少。

标签: firebaseunity3dservergoogle-cloud-storageassetbundle

解决方案


我所知道的 Firebase 中没有完整的端到端集成,用于从编辑器上传 AssetBundle 并将它们拉到客户端中。您可以使用Firebase Cloud Storage SDK。我将简要概述如何使用它。

我喜欢使用 AssetBundle Browser 来构建我的包: AssetBundle 浏览器和相应的查找器窗口

而且,使用网络上的Firebase 控制台,我可以将这些文件上传到 Cloud Storage 存储分区。对于大多数简单的游戏,我只是镜像这个目录布局: 在此处输入图像描述

上传数据后,您可以使用我之前提到的 Cloud Storage SDK获取 URL :

// Create a reference from a Google Cloud Storage URI
Firebase.Storage.StorageReference reference =
  storage.GetReferenceFromUrl("gs://bucket/AssetBundles/Android/samplescene.manifest");

// Fetch the download URL
reference.GetDownloadUrlAsync().ContinueWith((Task<Uri> task) => {
  if (!task.IsFaulted && !task.IsCanceled) {
    Debug.Log("Download URL: " + task.Result());
    // ... now download the file via WWW or UnityWebRequest.
  }
});

获得所有 URL 后,您可以使用自己喜欢的方法将它们加载到 Unity中。

如果您不想使用 Unity 的缓存以及将它们直接放入内存中,云存储当然有一些方法可以直接下载到文件。

现在,我提到没有任何端到端的解决方案可以将您的资产包上传到 Firebase。如果您想构建自己的管道来实现自动化,则可以使用Uploading APIAdmin SDK 。

我希望这一切都有帮助!


推荐阅读