C# Unity Firebase存储读取映像不工作
我想在存储器中保存精灵并加载精灵图像。 目前存储保存工作良好。但负载不工作:( 保存代码:C# Unity Firebase存储读取映像不工作,c#,unity3d,firebase-realtime-database,firebase-storage,C#,Unity3d,Firebase Realtime Database,Firebase Storage,我想在存储器中保存精灵并加载精灵图像。 目前存储保存工作良好。但负载不工作:( 保存代码: private StorageReference storageReference; storageReference = FirebaseStorage.DefaultInstance.GetReferenceFromUrl("my storage URL"); public void SaveShopImage(string fileName, Sprite sprite) { Te
private StorageReference storageReference;
storageReference = FirebaseStorage.DefaultInstance.GetReferenceFromUrl("my storage URL");
public void SaveShopImage(string fileName, Sprite sprite)
{
Texture2D ShopTexture = textureFromSprite(sprite);
var ImageByte = ShopTexture.GetRawTextureData();
StorageReference rivers_ref = storageReference.Child("Filename");
rivers_ref.PutBytesAsync(ImageByte).ContinueWith((Task<StorageMetadata> task) =>
{
if (task.IsFaulted || task.IsCanceled)
{
Debug.Log(task.Exception.ToString());
}
else
{
Debug.Log("Finished uploading...");
}
});
}
private-StorageReference-StorageReference;
storageReference=FirebaseStorage.DefaultInstance.GetReferenceFromUrl(“我的存储URL”);
public void SaveShopImage(字符串文件名,精灵精灵)
{
Texture2D ShopTexture=textureFromSprite(雪碧);
var ImageByte=ShopTexture.GetRawTextureData();
StorageReference\u ref=StorageReference.Child(“文件名”);
rivers\u ref.PutBytesAsync(ImageByte).ContinueWith((任务)=>
{
if(task.IsFaulted | | task.IsCanceled)
{
Debug.Log(task.Exception.ToString());
}
其他的
{
Log(“已完成上载…”);
}
});
}
它运行良好。但加载脚本不起作用。。
在UnityEditor中,日志输出最多为(“A”)。
(“B”)将不会输出,以下代码也将不起作用
加载代码:
public void ReadShopImage(string ResourceName, Sprite spriteToSet)
{
const long maxAllowedSize = 1 * 1024 * 1024;
storageReference.Child("Filename").GetBytesAsync(maxAllowedSize).ContinueWith((Task<byte[]> task) => {
if (task.IsFaulted || task.IsCanceled)
{
Debug.Log(task.Exception.ToString());
}
else
{
byte[] fileContents = task.Result;
Debug.Log("A");
Texture2D texture = new Texture2D(100, 100);
texture.LoadImage(fileContents);
Debug.Log("B");
SaveToSprite = Sprite.Create(texture, new Rect(0.0f, 0.0f, texture.width, texture.height), new Vector2(0.5f, 0.5f), 100.0f);
Debug.Log("Finished downloading!");
}
});
}
public void ReadShopImage(字符串ResourceName,Sprite spriteToSet)
{
const long maxAllowedSize=1*1024*1024;
storageReference.Child(“文件名”).GetByteAsync(maxAllowedSize).ContinueWith((任务)=>{
if(task.IsFaulted | | task.IsCanceled)
{
Debug.Log(task.Exception.ToString());
}
其他的
{
字节[]fileContents=task.Result;
Debug.Log(“A”);
纹理2d纹理=新纹理2d(100100);
加载图像(文件内容);
调试日志(“B”);
SaveToSprite=Sprite.Create(纹理,新矩形(0.0f,0.0f,纹理.宽度,纹理.高度),新矢量2(0.5f,0.5f),100.0f);
Log(“下载完毕!”);
}
});
}
我做错什么了吗?
如何从FirebaseStorage设置SpriteMage
或者如何使用FirebaseDatabase保存图像?
谢谢你阅读我的问题。祝你有愉快的一天
=======================================================
我使用ContinueWithOnMainThread解决了这个问题:)
但是sprite没有改变哈..你的unity版本是什么?我使用的是2018.3.9f1版本