Unity 6.3
0 онлайн 63 гостей 3 в системе
Вход

MeshDataArray

структура в UnityEngine

Выполнено в:UnityEngine.CoreModule

Описание

Массив снимков данных Mesh для доступа к C# Job System.

Доступ к большинству объектов Unity не защищен от потоков, поэтому для эффективной обработки или создания мешей из системы заданий C# используйте MeshDataArray и MeshData Структуры.

Вы можете использовать Mesh.AcquireReadOnlyMeshData для доступа только для чтения к данным меши нескольких мешей; и Mesh.AllocateWritableMeshData вместе с Mesh.ApplyAndDisposeWritableMeshData для создания новых мешей.

Одинокий MeshDataArray структура представляет снимок данных сразу нескольких мешей. Используйте Length и оператор индекса для доступа к данным отдельных Mesh. Выделение памяти и C# Job System безопасности отслеживания встроен в MeshDataArray структуре, поэтому издержки на отслеживание минимальны при одновременной работе с несколькими мешами. Поэтому гораздо эффективнее использовать одну MeshDataArray/ структуру для нескольких мешей, чем работать с несколькими отдельными структурами.

Важно устранить MeshDataArray структуру, когда закончите с ней работать. Используйте Dispose чтобы освободить структуру, когда закончите с ней работать, либо воспользуйтесь оператором C# using шаблон, чтобы сделать это автоматически:

using Unity.Collections;
using UnityEngine;
public class ExampleScript : MonoBehaviour
{
    void Start()
    {
        var mesh = new Mesh();
        mesh.vertices = new[] {Vector3.one, Vector3.zero};
        using (var dataArray = Mesh.AcquireReadOnlyMeshData(mesh))
        {
            var data = dataArray[0];
            // prints "2"
            Debug.Log(data.vertexCount);
            var gotVertices = new NativeArray<Vector3>(mesh.vertexCount, Allocator.TempJob);
            data.GetVertices(gotVertices);
            // prints "(1.0, 1.0, 1.0)" and "(0.0, 0.0, 0.0)"
            foreach (var v in gotVertices)
                Debug.Log(v);
            gotVertices.Dispose();
        }
    }
}

Дополнительные ресурсы: ,Mesh.AcquireReadOnlyMeshData,, ,Mesh.AllocateWritableMeshData,, ,Mesh.ApplyAndDisposeWritableMeshData,, ,MeshData,.

Свойства

Свойство Описание
LengthЧисло элементов данных сетки в MeshDataArray.
это[int]Доступ к элементу MeshDataArray по индексу.

Открытые методы

Метод Описание
DisposeС помощью этого метода освобождается структура MeshDataArray.