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

Mesh.SetIndexBufferData

建议更改

成功!

感谢您帮助我们提升 Unity 文档的质量。虽然我们无法接受所有提交内容,但我们确实会阅读用户建议的每项更改,并在适用的情况下进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请在几分钟后<a>重试</a>。感谢您花时间帮助我们提升 Unity 文档的质量。

关闭

取消

切换到手册

声明

public void SetIndexBufferData(NativeArray<T> data, int dataStart, int meshBufferStart, int count, Rendering.MeshUpdateFlags flags);

声明

public void SetIndexBufferData(T[] data, int dataStart, int meshBufferStart, int count, Rendering.MeshUpdateFlags flags);

声明

public void SetIndexBufferData(List<T> data, int dataStart, int meshBufferStart, int count, Rendering.MeshUpdateFlags flags);

参数

data 索引缓冲区数据数组。
dataStart 从其开始复制数据的数组中的第一个元素。
meshBufferStart 用于接收数据的网格索引缓冲区中的第一个元素。
count 要复制的索引的数量。
flags 控制函数行为的标志,参见 MeshUpdateFlags

描述

设置网格的索引缓冲区的数据。

注意:此方法专为旨在获得最大性能的高级用户设计,因为它操作基础网格数据结构,这些结构主要通过原始索引缓冲区、顶点缓冲区和网格子集数据进行工作。通过使用此方法,Unity 执行极少的数据验证,因此您必须确保您的数据有效。

尤其是,您必须确保 SubMesh 索引范围和拓扑结构通过 SetSubMesh 进行更新。

默认情况下,会检查索引缓冲区 data 的数组是否包含索引越界错误。可以将 flags 参数设置为 MeshUpdateFlags.DontValidateIndices 以出于性能原因而关闭验证。

有关通过脚本向网格分配数据的更简单方法与更高级方法之间的差异的信息,请参阅 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, ...);