当修改可能影响网格几何形状的网格数据时,Unity 的默认行为是通知使用此网格的所有 渲染器 组件,以便他们可以根据新数据执行通常需要的重新计算。例如,网格渲染器 组件会重新计算其边界框,而 形状模块 会重建网格表面发射中所使用的内部数据。
在使用“高级”网格 API 时,如果您提供了 MeshUpdateFlags.DontNotifyMeshUsers
标志,则 Unity 将省略这些通知。当您知道很多网格修改操作在渲染器组件实际需要更新之前会发生时,这可能对性能有帮助。
因此,您必须确保稍后调用 Mesh.MarkModified,以通知相关的渲染器组件它们应该执行重新计算。
您可以将此标志与以下“高级”网格 API 一起使用:Mesh.SetVertexBufferData、Mesh.SetIndexBufferData 或 Mesh.SetSubMesh
有关从脚本向网格分配数据时较简单方法和更高级方法之间差别的信息,请参阅 网格 页面上的注释。