Version: 2022.1

Mesh.SetIndices

切换到手册
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 (ushort[] indices, MeshTopology topology, int submesh, bool calculateBounds, int baseVertex);
public void SetIndices (List<ushort> indices, MeshTopology topology, int submesh, bool calculateBounds, int baseVertex);
public void SetIndices (NativeArray<T> indices, MeshTopology topology, int submesh, bool calculateBounds, int baseVertex);

参数

indices 定义网格面的索引的数组。
topology 网格的拓扑,例如:三角形、线条、四边形、点等。请参阅 MeshTopology。
submesh 要修改的子网格。
calculateBounds 在设置索引之后计算网格的包围盒。这会在默认情况下进行。 在要使用现有包围盒并减少设置索引的 CPU 开销时,请使用 false。
baseVertex 添加到所有顶点索引的可选顶点偏移。

描述

为子网格设置索引缓冲区。

子网格表示使用单个 Material 渲染的三角形(或具有不同 MeshTopology 的索引)的列表。当网格与具有多个材质的 Renderer 一起使用时,应确保每个材质有一个子网格。

SetTriangles 和 triangles 始终将网格设置为由三角形的面 组成。使用 SetIndices 可创建由线条或点组成的网格。

在使用 16 位索引缓冲区时,baseVertex 参数可以用于实现大于 65535 个顶点的网格, 只要每个子网格都适应其自己的 65535 顶点区域即可。例如,如果传递给 SetIndices 的索引缓冲区 包含索引 10、11、12 并且 baseVertex 设置为 100000,则实际上会使用索引 100010、100011 和 100012 进行渲染。

请注意,网格在默认情况下使用 16 位 indexFormat,即,索引缓冲区中支持的最大值是 65535(即使在使用 @int[]@ 输入数据时)。若要使用较大索引缓冲区值,应先将 indexFormat 设置为 IndexFormat.UInt32。

另请参阅:subMeshCount、MeshTopology 枚举、indexFormat。


public void SetIndices (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, bool calculateBounds, int baseVertex);
public void SetIndices (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, bool calculateBounds, int baseVertex);
public void SetIndices (NativeArray<T> indices, int indicesStart, int indicesLength, MeshTopology topology, int submesh, bool calculateBounds, int baseVertex);

参数

indices 定义网格面的索引的数组。
indicesStart 要从输入数组采用的第一个元素的索引。
indicesLength 要从输入数组采用的元素数。
topology 网格的拓扑,例如:三角形、线条、四边形、点等。请参阅 MeshTopology。
submesh 要修改的子网格。
calculateBounds 在设置索引之后计算网格的包围盒。这会在默认情况下进行。 在要使用现有包围盒并减少设置索引的 CPU 开销时,请使用 false。
baseVertex 添加到所有顶点索引的可选顶点偏移。

描述

使用输入数组的一部分设置子网格的索引缓冲区。

此方法的行为方式如同调用 SetIndices,所使用的数组为整个数组的一个切片(从 indicesStart 索引开始,长度为给定的 indicesLength 长度)。生成的子网格会具有 indicesLength 数量的顶点索引。