问题描述
我正在使用 Vuforia 在 Unity 中创建一个项目,它让人们可以动态创建可跟踪的图像,然后让您创建一个显示。这些图像和显示被转换为纹理并作为材质应用于四边形。
我试图做到这样,当创建纹理时,它们会被保存,以便当应用程序重新启动时,它们会被存储和记住。到目前为止我有代码
private void SaveTexturesToJpg(Texture2D texturetoSave)
{
byte[] bytes = texturetoSave.EncodetoJPG();
string filepath = Application.persistentDataPath + "/JPG_" + _nameCounter + ".jpg";
_nameCounter++;
File.WriteallBytes(filepath,bytes);
}
这会将纹理保存到设备中的文件夹中,我知道我可以使用 File.ReadAllBytes()
加载图像,但我不明白如何将其作为纹理应用。
不胜感激。
解决方法
如果您有一个包含纹理数据的字节数组,您可以使用 LoadRawTextureData()
首先使用您需要的大小和格式创建纹理,然后加载数据。没有 mipmap 的 512x512 纹理将是这样的:
Texture2D tex = new Texture2D(512,512,TextureFormat.RGBA32,false);
tex.LoadRawTextureData(dataArray);
tex.Apply();
之后,您可以将纹理应用于您的材料