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

Mesh.SetSubMesh

Declaration

public void SetSubMesh(int index, Rendering.SubMeshDescriptor desc, Rendering.MeshUpdateFlags flags);

Параметры

Параметр Описание
индекс Индекс субсетки. См. subMeshCount. Индексы вне диапазона вызывают исключение.
снижение Данные субсетки.
флаги Флаги, управляющие поведением функции, см. MeshUpdateFlags.

Описание

Задает информацию о подсети Сетки.

Обратите внимание: SetSubMesh, SubMeshDescriptor и SetIndexBufferData предназначены для опытных пользователей, которым нужна максимальная производительность. Эти методы работают с базовыми структурами данных меша, в основном с необработанными буферами индексов, буферами вершин и данными подмножеств меша. При использовании этих методов Unity выполняет минимальную проверку данных, поэтому вы должны самостоятельно убедиться в их корректности.

В частности, убедитесь, что диапазон индексов и топология SubMesh имеют корректные значения. Индексы SubMesh в диапазоне от indexStart до indexCount не должны пересекаться с индексами других SubMesh.

При использовании LODs объекта Mesh также убедитесь, что заданный диапазон индексов каждого субмеша достаточно велик для размещения всех уровней детализации, используемых в этом субмеше. Перед настройкой subMesh может потребоваться вызвать Mesh.SetLods. Проверку можно отключить, задав для flags значение MeshUpdateFlags.DontValidateLodRanges.

Сведения о различиях между простыми и расширенными методами назначения данных объекту Mesh из скрипта приведены в примечания в Mesh, приведённые на соответствующей странице.

Значения SubMeshDescriptor-bounds, SubMeshDescriptor-firstVertex и SubMeshDescriptor-vertexCount структуры SubMeshDescriptor автоматически вычисляются методом SetSubMesh, если не передан флаг MeshUpdateFlags.DontRecalculateBounds. Обратите внимание, что это относится только к границам SubMesh. Вызовите Mesh.RecalculateBounds, чтобы пересчитать границы самого Mesh.

Общая схема использования:

var mesh = new Mesh();

// setup vertex buffer data mesh.vertices = ...;

// set index buffer mesh.SetIndexBufferParams(...); mesh.SetIndexBufferData(...);

// setup information about mesh subsets mesh.subMeshCount = ...; mesh.SetSubMesh(index, ...);

// update bounds of the mesh mesh.RecalculateBounds();

Подробную информацию о том, какие данные настраивать для каждой подсетки, см. в SubMeshDescriptor.

Дополнительные ресурсы: subMeshCount, GetSubMesh, SetIndexBufferParams, SetIndexBufferData, MeshUpdateFlags.