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

Mesh.SetIndices

Declaration

public void SetIndices(int[] indices, MeshTopology topology, int submesh, int meshLod, bool calculateBounds, int baseVertex);
public void SetIndices(int[] indices, MeshTopology topology, int submesh, bool calculateBounds = true, int baseVertex = 0);
public void SetIndices(List<int> indices, MeshTopology topology, int submesh, bool calculateBounds, int baseVertex);
public void SetIndices(List<int> indices, MeshTopology topology, int submesh, int meshLod, bool calculateBounds, int baseVertex);
public void SetIndices(ushort[] indices, MeshTopology topology, int submesh, bool calculateBounds, int baseVertex);
public void SetIndices(ushort[] indices, MeshTopology topology, int submesh, int meshLod, bool calculateBounds, int baseVertex);
public void SetIndices(List<ushort> indices, MeshTopology topology, int submesh, bool calculateBounds, int baseVertex);
public void SetIndices(List<ushort> indices, MeshTopology topology, int submesh, int meshLod, bool calculateBounds, int baseVertex);
public void SetIndices(NativeArray<T> indices, MeshTopology topology, int submesh, bool calculateBounds, int baseVertex);
public void SetIndices(NativeArray<T> indices, MeshTopology topology, int submesh, int meshLod, bool calculateBounds, int baseVertex);

Параметры

Параметр Описание
индексы Массив индексов, определяющих поверхности сетки.
топология Топология сетки, e.g: Треугольники, Линии, Квадраты, Точки и т.д. См. MeshTopology.
субсетка Подсетка для изменения.
calculateBounds Вычисляет границу подсетки после установки индексов. Unity делает это по умолчанию. Используйте false, если вы хотите использовать существующую границу и уменьшить затраты CPU на установку индексов.
baseVertex Необязательное смещение вершины, которое добавляется ко всем индексам вершин.
meshLod Сетка LOD для изменения. Используйте -1 для изменения всей подсетки. Если не указано, то LOD0 изменяется.

Описание

Задает индексный буфер для подсетки.

Субмеш представляет собой список треугольников (или индексов с другой MeshTopology), которые визуализируются с использованием одного Material. Если Mesh используется с Renderer, содержащим несколько материалов, убедитесь, что каждому Material соответствует отдельный субмеш.

SetTriangles и triangles всегда задают Mesh, состоящий из треугольных граней. Чтобы создать Mesh, состоящий из линий или точек, используйте SetIndices.

Аргумент baseVertex позволяет создавать меши более чем с 65536 вершинами при использовании 16-разрядных буферов индексов, если каждый индекс субмеша укладывается в собственный диапазон значений до 65535. Например, если переданный в SetIndices буфер индексов содержит индексы 10, 11, 12, а для baseVertex задано значение 100000, то при визуализации фактически будут использоваться вершины 100010, 100011 и 100012.

Обратите внимание: по умолчанию меши используют 16-разрядный indexFormat, то есть максимальное поддерживаемое значение в буфере индексов равно 65535 (даже при использовании входных данных int[]). Чтобы использовать большие значения буфера индексов, сначала задайте для indexFormat значение IndexFormat.UInt32.

После обновления всех субмешей вызовите Mesh.RecalculateBounds, если хотите, чтобы Mesh обновил свой ограничивающий параллелепипед.

Дополнительные ресурсы: subMeshCount, MeshTopology, indexFormat.

Declaration

public void SetIndices(int[] indices, int indicesStart, int indicesLength, MeshTopology topology, int submesh, bool calculateBounds, int baseVertex);
public void SetIndices(int[] indices, int indicesStart, int indicesLength, MeshTopology topology, int submesh, int meshLod, bool calculateBounds, int baseVertex);
public void SetIndices(List<int> indices, int indicesStart, int indicesLength, MeshTopology topology, int submesh, bool calculateBounds, int baseVertex);
public void SetIndices(List<int> indices, int indicesStart, int indicesLength, MeshTopology topology, int submesh, int meshLod, bool calculateBounds, int baseVertex);
public void SetIndices(ushort[] indices, int indicesStart, int indicesLength, MeshTopology topology, int submesh, bool calculateBounds, int baseVertex);
public void SetIndices(ushort[] indices, int indicesStart, int indicesLength, MeshTopology topology, int submesh, int meshLod, bool calculateBounds, int baseVertex);
public void SetIndices(List<ushort> indices, int indicesStart, int indicesLength, MeshTopology topology, int submesh, bool calculateBounds, int baseVertex);
public void SetIndices(List<ushort> indices, int indicesStart, int indicesLength, MeshTopology topology, int submesh, int meshLod, bool calculateBounds, int baseVertex);
public void SetIndices(NativeArray<T> indices, int indicesStart, int indicesLength, MeshTopology topology, int submesh, bool calculateBounds, int baseVertex);
public void SetIndices(NativeArray<T> indices, int indicesStart, int indicesLength, MeshTopology topology, int submesh, int meshLod, bool calculateBounds, int baseVertex);

Параметры

Параметр Описание
индексы Массив индексов, определяющих поверхности сетки.
indicesStart Индекс первого элемента, который будет взят из входного массива.
indicesLength Количество элементов, которые будут взяты из входного массива.
топология Топология сетки, e.g: Треугольники, Линии, Квадраты, Точки и т.д. См. MeshTopology.
субсетка Подсетка для изменения.
calculateBounds Вычисляет границу подсетки после установки индексов. Unity делает это по умолчанию. Используйте false, если вы хотите использовать существующую границу и уменьшить затраты CPU на установку индексов.
baseVertex Необязательное смещение вершины, которое добавляется ко всем индексам вершин.
meshLod Уровень детализации сетки для изменения.

Описание

Устанавливает индексный буфер подсетки, используя часть входного массива.

Этот метод ведет себя так же, как если бы вы вызвали SetIndices с массивом, который является фрагментом всего массива, начиная с индекса indicesStart и имея заданную длину indicesLength. Полученная подсетка будет иметь indicesLength количество вершинных индексов.