void CreateOrReplaceAsset(Mesh mesh, string path)
{
var meshAsset = AssetDatabase.LoadAssetAtPath (path, typeof(Mesh)) as Mesh;
if (meshAsset == null) {
meshAsset = new Mesh ();
// Hack to display mesh once saved
CombineInstance[] combine = new CombineInstance[1];
combine[0].mesh = mesh;
combine[0].transform = Matrix4x4.identity;
meshAsset.CombineMeshes(combine);
EditorUtility.CopySerialized (mesh, meshAsset);
AssetDatabase.CreateAsset (meshAsset, path);
}
else {
meshAsset.Clear();
// Hack to display mesh once saved
CombineInstance[] combine = new CombineInstance[1];
combine[0].mesh = mesh;
combine[0].transform = Matrix4x4.identity;
meshAsset.CombineMeshes(combine);
EditorUtility.CopySerialized (mesh, meshAsset);
AssetDatabase.SaveAssets ();
}
}