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

Mesh.MeshData.GetVertexData

Declaration

public NativeArray<T> GetVertexData(int stream = 0);

Параметры

Параметр Описание
поток Поток вершинного буфера для получения данных. Значение по умолчанию — 0.

Возвращаемое значение

NativeArray<T> Возвращает NativeArray, содержащий данные буфера вершин.

Описание

Получает необработанные данные для заданного формата потока вершинного буфера в MeshData.

GetVertexData возвращает прямой "указатель" на необработанные данные вершинного буфера без каких-либо выделений памяти, копирования данных или преобразований. Вы не должны удалять возвращенный NativeArray, так как он не представляет собой новое выделение памяти.

Для этого вам нужно знать точное расположение данных Mesh: например, наличие и форматы всех атрибутов вершин сетки. Расположение данных соответствует расположению из Mesh.SetVertexBufferData.

Если MeshData может записываться, и вы установили размер и расположение вершинного буфера с помощью Mesh.MeshData.SetVertexBufferParams, вы можете записывать данные вершин непосредственно в массив. Если MeshData только для чтения, массив только для чтения.

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

using UnityEngine;
public class ExampleScript : MonoBehaviour
{
    struct Vertex
    {
        public Vector3 pos;
        public Vector2 uv;
    }
    void Start()
    {
        var mesh = new Mesh();
        mesh.vertices = new[] {Vector3.one, Vector3.up};
        mesh.uv = new[] {Vector2.right, Vector2.up};
        using (var data = Mesh.AcquireReadOnlyMeshData(mesh))
        {
            var verts = data[0].GetVertexData<Vertex>();
            // prints "pos (1.0, 1.0, 1.0) uv (1.0, 0.0)" and "pos (0.0, 1.0, 0.0) uv (0.0, 1.0)"
            foreach (var v in verts)
                Debug.Log($"pos {v.pos} uv {v.uv}");
        }
    }
}

Дополнительные ресурсы: ,Mesh.SetVertexBufferParams,, ,Mesh.SetVertexBufferData,, ,GetIndexData,, ,Mesh.AcquireReadOnlyMeshData,.