【发布时间】:2019-03-06 17:16:00
【问题描述】:
我正在尝试在 Android 设备上下载并保存文件。它在 PC 上运行良好,但我的 android 手机上有一个视觉错误。请看屏幕
我的代码: 这就是我下载和序列化它的方式
Icon = Sprite.Create(texture2dd, new Rect(0.0f, 0.0f, texture2dd.width, texture2dd.height), new Vector2(0.5f, 0.5f), 100.0f);
byte[] texturebytes = Icon.texture.GetRawTextureData();
File.WriteAllText(Application.persistentDataPath + "/icon", Encoding.Default.GetString(texturebytes));
File.WriteAllText(Application.persistentDataPath + "/iconinfo", Icon.texture.width + "@@@" + Icon.texture.height);
这就是我稍后尝试加载它的方式:
string[] info = File.ReadAllText(path + "info").Split(new string[] { "@@@" }, StringSplitOptions.None);
int width, height;
int.TryParse(info[0], out width);
int.TryParse(info[1], out height);
byte[] bytesIcon = Encoding.Default.GetBytes(File.ReadAllText(path));
Texture2D iconText = new Texture2D(width, height, TextureFormat.ARGB32, false);
iconText.LoadRawTextureData(bytesIcon);
iconText.Apply();
return Sprite.Create(iconText, new Rect(0, 0, width, height), new Vector2(0.5f, 0.5f));
我认为编码类型有问题,但我尝试了所有编码类型,它仍然不起作用,并加载了一些错误纹理。
【问题讨论】:
标签: unity3d serialization encoding sprite