Объявление
public NativeArrayВозвращает
NativeArrayNativeArray
, содержащий данные индексного буфера.
Описание
Получает необработанные данные из индексного буфера MeshData
.
GetIndexData
возвращает прямой "указатель" на необработанные данные буфера индекса без каких-либо выделений памяти, копий данных или преобразований. Вам не нужно удалять возвращенный NativeArray
, так как он не представляет новое выделение памяти.
Вам необходимо знать точную компоновку данных Mesh для работы с этими данными, включая наличие и форматы всех атрибутов вершин. Макет данных соответствует макету из Mesh.SetIndexBufferData. Как правило, сетки с 16-битным форматом индекса используют тип данных ushort
, а сетки с 32-битным форматом индекса используют int
. тип данных.
Если MeshData
доступен для записи, и вы установили размер и формат индексного буфера с помощью Mesh.MeshData.SetIndexBufferParams, вы можете записывать индексы непосредственно в массив. Если MeshData
доступен только для чтения, массив доступен только для чтения.
Смотрите так же: Mesh.AllocateWritableMeshData, Mesh.AcquireReadOnlyMeshData, Mesh.MeshData.SetIndexBufferParams.
using UnityEngine;
using UnityEngine.Rendering;
public class ExampleScript : MonoBehaviour
{
void Start()
{
var mesh = new Mesh();
mesh.vertices = new[] {Vector3.one, Vector3.zero, Vector3.up};
mesh.indexFormat = IndexFormat.UInt16;
mesh.triangles = new[] {2, 0, 1};
using (var data = Mesh.AcquireReadOnlyMeshData(mesh))
{
var indices = data[0].GetIndexData();
// prints 2, 0, 1
foreach (var i in indices)
Debug.Log(i);
}
}
}
Смотрите так же: Mesh.SetIndexBufferParams, Mesh.SetIndexBufferData, GetVertexData, Mesh.AcquireReadOnlyMeshData.