【发布时间】:2019-11-25 15:41:11
【问题描述】:
我已将我的 3d 模型放在一个资产包中并将其存储在 firebase 存储中。当应用程序运行时,我想从 firebase 加载 3d 模型,并且我希望 3d 模型成为主摄像头的子级。但不幸的是它不起作用。当我运行应用程序时,我从控制台中的 debug.log 获取存储参考 url,但没有下载任何内容,我也调试了代码,没有发现任何错误。这是我最后一年的项目,所以请任何感谢您的帮助
using Firebase.Storage;
using System.Threading.Tasks;
using System.Collections;
using UnityEngine;
using System;
using UnityEngine.Networking;
public class Loadmodel2 : MonoBehaviour
{
// Start is called before the first frame update
public GameObject test;
void Start()
{
FirebaseStorage storage = FirebaseStorage.DefaultInstance;
Firebase.Storage.StorageReference reference =
storage.GetReferenceFromUrl("gs://fit-union-221609.appspot.com/assettest1/myasset");
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.
StartCoroutine(Loadcoroutine(task.Result));
}
});
}
IEnumerator Loadcoroutine(Uri uri)
{
using (var www = UnityWebRequestAssetBundle.GetAssetBundle(uri))
{
yield return www.SendWebRequest();
if (www.isNetworkError || www.isHttpError)
{
Debug.Log(www.error);
}
else
{
AssetBundle bundle = DownloadHandlerAssetBundle.GetContent(www);
var mya1 = bundle.LoadAssetAsync<GameObject>("BarbarianVariant");
yield return mya1;
var obj = Instantiate((GameObject)mya1.asset);
obj.transform.parent = test.transform;
}
}
}
}
【问题讨论】:
-
“gs://fit-union-221609.appspot.com/assettest1/myasset”是谷歌云存储位置吗? gs:// 仅适用于谷歌存储。
-
那我该怎么办。我按照这个文档-firebase.google.com/docs/storage/unity/download-files 看起来你可以使用它
标签: android firebase unity3d firebase-storage vuforia