版本:Unity 6 (6000.0)
语言English
  • C#

Mesh.SetIndexBufferParams

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法采纳所有提交,但我们确实阅读了用户提出的每一项更改建议,并在适用情况下进行更新。

关闭

提交失败

由于某些原因,您的更改建议无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

切换到手册

声明

public void SetIndexBufferParams(int indexCount, Rendering.IndexFormat format);

参数

indexCount 索引缓冲区的大小。
format 索引的格式。

描述

设置索引缓冲区的大小和格式。

注意:此方法专为追求最大性能的高级用户设计,因为它操作的是底层网格数据结构,这些结构主要处理原始索引缓冲区、顶点缓冲区和网格子集数据。使用此方法时,Unity 执行很少的数据验证,因此您必须确保数据有效。

特别是,您必须确保索引缓冲区不包含超出范围的索引,并且子网格索引范围和边界通过 SetSubMesh 更新。

有关从脚本向 Mesh 分配数据的简单方法和高级方法之间区别的信息,请参阅 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, ...);

当您更改索引缓冲区的大小或格式时,subMeshCount 将恢复为 1,并且索引缓冲区数据未初始化。要设置值,请使用 SetIndexBufferData

请注意,将 subMeshCount 更改为小于之前的值会调整索引缓冲区的大小使其变小。新的索引缓冲区大小设置为第一个删除的子网格的 SubMeshDescriptor.indexStart

如果索引缓冲区大小超过设备支持的最大缓冲区大小,则该方法会引发异常。有关更多信息,请参阅 SystemInfo.maxGraphicsBufferSize

其他资源:SetIndexBufferDatasubMeshCountSetSubMeshSetSubMeshes