Объявление
public void SetSubMesh(int index, Rendering.SubMeshDescriptor desc, Rendering.MeshUpdateFlags flags);Параметры
index | Индекс подсетки. См. раздел subMeshCount. Индексы вне допустимого диапазона вызывают исключение. |
desc | Данные подсети. |
flags | Флаги, управляющие поведением функции, см. MeshUpdateFlags. |
Описание
Задает информацию о подсетке сетки.
Обратите внимание, что SetSubMesh
, SubMeshDescriptor и SetIndexBufferData предназначены для опытных пользователей, стремящихся к максимальной производительности, поскольку они работают с базовыми структурами данных сетки, которые в основном работают с необработанными индексными буферами, буферами вершин и данными подмножества сетки. Используя эти методы, Unity выполняет очень небольшую проверку данных, поэтому вы должны убедиться, что ваши данные действительны.
В частности, вы должны убедиться, что для диапазона индекса SubMesh и топологии заданы правильные значения. Индексы SubMesh, как indexStart, так и indexCount, не должны пересекаться ни с какими другими индексами SubMesh.
Информацию о разнице между более простыми и более сложными методами присвоения данных Mesh из скрипта см. в примечаниях на странице Mesh.
Значения границы, значения SubMeshDescriptor::pef::firstVertex и SubMeshDescriptor::pef::vertexCount для SubMeshDescriptor
вычисляются автоматически с помощью SetSubMesh
, если не передан флаг MeshUpdateFlags.DontRecalculateBounds.
Общая схема использования:
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, ...);
Подробнее о том, какие данные нужно настроить для каждой вложенной сетки, см. в разделе SubMeshDescriptor. Смотрите так же: subMeshCount, GetSubMesh, SetIndexBufferParams, SetIndexBufferData, MeshUpdateFlags.