public void Execute() { NativeList <MeshSource> sources = MeshSourceMap.GetSources(TileBounds.Coord); for (int i = 0; i < sources.Length; i++) { MeshSource source = sources[i]; if (!IncludeMask.HasLayer(source.Info.Layer)) { continue; } NativeArray <int> indices; NativeArray <float3> vertices; if (source.Info.Shared) { if (!SharedMeshSources.TryGetValue(source.Info.SharedMeshId, out BlobAssetReference <MeshSourceData> data)) { continue; } MeshSourceData.GetData(data, out indices, out vertices); MeshSourceData.TransformInPlace(source.Info.TRS, vertices); InputBuilder.Append(vertices, indices, source.Info.Area); } else { MeshSourceData.GetData(source.Value, out indices, out vertices); InputBuilder.Append(vertices, indices, source.Info.Area); } vertices.Dispose(); indices.Dispose(); } }