Version: 2021.3

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 一起使用时,应确保每个材质有一个子网格。

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

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

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

另请参阅:subMeshCountMeshTopology 枚举、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 数量的顶点索引。