我尝试了Assetdatabase,然后才知道它仅在编辑器模式下起作用...现在如何在播放模式下存储网格,然后又要加载它?
var savePath1 = "Assets/" + saveMaterial + ".asset";
if (AssetDatabase.LoadAssetAtPath(savePath1, typeof(Mesh))) {
AssetDatabase.DeleteAsset(savePath1);
AssetDatabase.CreateAsset(pf.mesh, savePath1);
//here pf is a reference of sphere(gameobject)
}
答案 0 :(得分:1)
网格是一种相对简单的结构,对于单个子网格,您可以在运行时很容易地将其序列化为json或其他格式
[System.Serializable]
public class MeshEquivalent
{
public Vector3[] vertices;
public Vector3[] normals;
public Vector2[] uv;
public int[] triangles;
public MeshEquivalent(Mesh mesh)
{
vertices = mesh.vertices;
uv = mesh.uv;
normals = mesh.normals;
triangles = mesh.triangles;
}
}
还有其他uv通道(您可能不需要),子网格(相同)和边界可以重新计算。可以使用相反的过程来重建该网格。