Объявление
public void SetNextIndex(ushort index);Параметры
index | Значение следующего индекса. |
Описание
Присваивает значение следующего индекса из списка выделенных индексов.
Используется для итеративного заполнения значений выделенных индексов посредством повторных вызовов этой функции до тех пор, пока не будут предоставлены все значения. Этот способ заполнения данных индекса является взаимоисключающим при использовании SetAllIndices. После каждого вызова этой функции автоматически увеличивается внутренний счетчик для следующего индекса. При вызове этого метода невозможно использовать SetAllIndices для заполнения индексов. Предоставленные значения индекса относятся непосредственно к вершинам, выделенным в одном и том же объекте MeshWriteData. Таким образом, индекс 0 означает первую вершину, а индекс 1 означает вторую вершину и т. д.
using UnityEngine.UIElements;
public class MyVisualElement : VisualElement
{
void MyGenerateVisualContent(MeshGenerationContext mgc)
{
var meshWriteData = mgc.Allocate(4, 6);
// meshWriteData has been allocated with 6 indices for 2 triangles
// ... set the vertices
// Set indices for the first triangle
meshWriteData.SetNextIndex(0);
meshWriteData.SetNextIndex(1);
meshWriteData.SetNextIndex(2);
// Set indices for the second triangle
meshWriteData.SetNextIndex(2);
meshWriteData.SetNextIndex(1);
meshWriteData.SetNextIndex(3);
}
}
Обратите внимание, что вызов SetNextIndex реже, чем выделенное количество индексов, оставит оставшиеся индексы со случайными значениями, поскольку MeshGenerationContext.Allocate не инициализирует возвращаемые данные для 0, чтобы избежать лишней работы.