微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Unity 中加载动态创建的纹理

如何解决在 Unity 中加载动态创建的纹理

我正在使用 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();

之后,您可以将纹理应用于您的材料

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。