【发布时间】:2020-06-20 00:43:29
【问题描述】:
我有一个 Unity 游戏,玩家在开始游戏后从数据库中获取库存。 我得到了存储在 Firebase Storage 中的项目的图片,我可以下载它们。 但是,我不知道如何从我通过下载获得的 byte[] (fileContents) 制作精灵。 (稍后我会将这些精灵加载到玩家的物品栏中)
我得到了以下 C# 脚本:
private void getPlayersInventory()
{
FirebaseDatabase.DefaultInstance.GetReference("users").Child(auth.CurrentUser.UserId)
.Child("inventory").GetValueAsync().ContinueWith(task =>
{
if (task.IsFaulted)
{
print("unable to get snapshot for the inventory");
}
else if (task.IsCompleted)
{
snapshot = task.Result;
if(snapshot.HasChildren)
{
foreach(var current in snapshot.Children)
{
string currentName = current.Value.ToString();
print(currentName.ToLower() + ".png");
const long maxAllowedSize = 10 * 1024 * 1024;
storageReference.Child(currentName.ToLower() + ".png")
.GetBytesAsync(maxAllowedSize)
.ContinueWith((Task<byte[]> task_) =>
{
if (task_.IsFaulted || task_.IsCanceled)
{
Debug.Log(task_.Exception.ToString());
}
else
{
byte[] fileContents = task_.Result;
Debug.Log("Finished downloading!");
}
});
}
}
}
});
}
【问题讨论】:
-
您是否尝试将其提取到local file?
-
我宁愿不将它提取到本地文件,因为整个方法对播放器应该是不可见的。
标签: c# firebase unity3d firebase-storage