如何将 Unity3d 网格保存到文件

本文关键字:存到文件 网格 Unity3d | 更新日期: 2023-09-27 18:36:28

在运行时,我创建了一个网格。我想保存它,以便它是我项目中的资产,这样我就不必每次都重新创建它。

如何将运行时创建的网格保存到我的资产文件夹中?

如何将 Unity3d 网格保存到文件

您可以使用

该网格序列化程序: http://wiki.unity3d.com/index.php?title=MeshSerializer2

public static void CacheItem(string url, Mesh mesh)
{
    string path = Path.Combine(Application.persistentDataPath, url);
    byte [] bytes = MeshSerializer.WriteMesh(mesh, true);
    File.WriteAllBytes(path, bytes);
}

它不会保存到 Asset 文件夹中,因为这个文件夹在运行时不再存在。您很可能会将其保存到持久数据路径中,该路径实际上用于存储数据。

然后你可以反其道而行之

public static Mesh GetCacheItem(string url)
{
    string path = Path.Combine(Application.persistentDataPath, url);
    if(File.Exists(path) == true)
    {
        byte [] bytes = File.ReadAllBytes(path);
        return MeshSerializer.ReadMesh(bytes);
    }
    return null;
}
您可以使用

该编辑器脚本,并从组件上下文菜单中另存为MeshFilter .asset