【问题标题】:Loading dynamically created textures in Unity在 Unity 中加载动态创建的纹理
【发布时间】:2021-04-03 22:31:07
【问题描述】:

我正在使用 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() 来加载图像,但我不明白如何将其应用为纹理。

我们将不胜感激。

【问题讨论】:

标签: c# unity3d vuforia texture2d


【解决方案1】:

如果您有一个包含纹理数据的字节数组,您可以使用 LoadRawTextureData() 将数据加载到纹理中

首先创建具有您需要的大小和格式的纹理,然后加载数据。没有 mipmap 的 512x512 纹理会是这样的:

Texture2D tex = new Texture2D(512, 512, TextureFormat.RGBA32, false);
tex.LoadRawTextureData(dataArray);
tex.Apply();

之后你可以将纹理应用到你的材质上

【讨论】:

  • 也要小心 TextureFormat .. 它必须匹配源纹理
猜你喜欢
  • 1970-01-01
  • 2018-01-07
  • 1970-01-01
  • 2021-04-27
  • 2020-01-09
  • 1970-01-01
  • 1970-01-01
  • 2012-09-20
  • 1970-01-01
相关资源
最近更新 更多