关注

为什么TerrainData.SetHeight如此之慢?

问题

  • 我想让自己的地形工具可以运行的很快,达到可以实时交互的水平。 

原因

您自制了一些地形制作工具,但是每次对地形应用更改的时候性能大大降低以至于不能正常使用。

解决方案

在自制地形制作工具时,TerrainData.SetHeights通常会慢一些。这是因为每次呼叫这个函数时所有的地形LOD都会被重新计算。

在5.2.0a3修复版本中我们加入了SetHeightsDelayedLOD的API用以改善因TerrainData.SetHeights计算LOD造成的缓慢速度。

在这个修复版本里,Unity编辑器使用以下这两个函数:

  • SetHeightDelayedLOD()
  • ApplyDelayedHeightmapModification()

如果使用SetHeightDelayedLOD(),在编辑地形时LOD计算将会被推迟或跳过。当鼠标按键松开时计算就会被触发。

在交互编辑的时候,我们推荐在用户在编辑的时候呼叫 TerrainData.SetHeightsDelayLOD,然后完成编辑的时候呼叫 Terrain.ApplyDelayedHeightmapModification

更多信息

更多关于TerrainData.SetHeights的信息请阅读这个 文档。 

点击 这里 下载包含SetHeightsDelayedLOD API的修复版本。

 

这篇文章有帮助吗?
0 人中有 0 人觉得有帮助
还有其它问题?提交请求

0 评论

登录写评论。