【问题标题】:Unity3d save texture3d on runtimeUnity3d在运行时保存texture3d
【发布时间】:2019-11-21 16:48:12
【问题描述】:

我正在寻找一种在运行时将我的 texture3D 保存在 Unity 应用程序中的方法。在我的程序中,我导入多个 PNG 并将它们放在一个 texture3D 中。为了保存它并更快地加载它,我想保存并加载这个 texture3D,而不是每次重新开始都导入图像。在我使用 AssetDatabase 之前,它工作得很好。但是我当然想构建我的程序并遇到问题。我没有找到任何方法来避免 AssetDatabase,所有帖子都只建议使用它。当它不能在运行时使用时它有什么帮助?如何保存资产和游戏状态?

最好的问候

【问题讨论】:

  • Texture3D 没有原生格式。这就是为什么它们“只能从脚本中创建”。
  • 您只能通过例如创建实际的图像文件。 EncodeToJpg 并在运行时将检索到的byte[] 写入文件。
  • 但是我可以用 texture3D 创建资源,至少使用 UnityEditor 类和 AssetDatabase。现在是否有在运行时创建和保存资产的解决方法?

标签: unity3d save assets


【解决方案1】:

感谢@derHugo。

答案是,你想在运行时保存的任何东西都必须转换为 byte[] 数组并用File.WriteAllBytes(string path, byte[] bytes); -> https://docs.unity3d.com/ScriptReference/Windows.File.WriteAllBytes.html保存它

您还可以从一个可以保存和读取的 byte[] 数组中提取和编码和解码来自于 texture3D 的 3D 数据。

我没有使用EncodeToJpg,我只需要按照高度顺序读取图像并对其颜色值进行排序。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多