// ------------------------------------------------------------------
// Desc:
// ------------------------------------------------------------------
public static void Build(this exTileMapRenderer _tileMapRenderer)
{
EditorUtility.SetDirty(_tileMapRenderer);
// NOTE: it is possible user duplicate an GameObject,
// if we directly change the mesh, the original one will changed either.
Mesh newMesh = new Mesh();
newMesh.hideFlags = HideFlags.DontSave;
newMesh.Clear();
// build vertices, normals, uvs and colors.
_tileMapRenderer.ForceUpdateMesh(newMesh);
//
GameObject.DestroyImmediate(_tileMapRenderer.meshFilter.sharedMesh, true); // delete old mesh (to avoid leaking)
_tileMapRenderer.meshFilter.sharedMesh = newMesh;
}