/// This is an intermediate representation used when building the navmesh, and also in some cases for serializing the navmesh to a portable format.
///
/// See: <see cref="NavmeshTile"/> for the representation used for pathfinding.
/// </summary>
publicstructTileMesh{
publicint[]triangles;
publicInt3[]verticesInTileSpace;
/// <summary>One tag per triangle</summary>
publicuint[]tags;
/// <summary>Unsafe version of <see cref="TileMesh"/></summary>
publicstructTileMeshUnsafe{
/// <summary>Three indices per triangle</summary>
publicUnsafeSpan<int>triangles;
/// <summary>One vertex per triangle</summary>
publicUnsafeSpan<Int3>verticesInTileSpace;
/// <summary>One tag per triangle</summary>
publicUnsafeSpan<uint>tags;
/// <summary>
/// Frees the underlaying memory.
/// This struct should not be used after this method has been called.
///
/// Warning: Only call if you know that the memory is owned by this struct, as it is entirely possible for it to just represent views into other memory.