Пример #1
0
            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();
                }
            }