Объявление
public NativeArrayПараметры
stream | Поток буфера вершин, для которого нужно получить данные. Значение по умолчанию — 0. |
Возвращает
NativeArrayNativeArray
, содержащий данные буфера вершин.
Описание
Получает необработанные данные для заданного формата потока буфера вершин в MeshData
.
GetVertexData
возвращает прямой "указатель" на необработанные данные буфера вершин без каких-либо выделений памяти, копий данных или преобразований. Вам не нужно удалять возвращенный NativeArray
, так как он не представляет новое выделение памяти.
Для этого вам необходимо знать точное расположение данных сетки: например, наличие и форматы всех атрибутов вершин сетки. Макет данных соответствует макету из 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.