5-6 代码优化 共享列表
在上一章中,我们修复了地图编辑器的功能。虽然现在构建地图的方式有了比较大的变化,但HexMesh
里的代码逻辑并没有改变,它只需要一个单元格数组就能干活,无论是一个还是多个mesh都没有关系。之前我们并没有考虑过使用多个mesh构建整个地图的方案,或许这里能有优化的地方。
HexMesh
里使用的列表实际是一个临时数据缓存,它只在三角构建的过程中使用。然而现在地图块的三角构建也是一次性完成的,所以还是只需要设置一次列表的数据而不是每个mesh三角构建时都设置一次,我们可以把列表设置为静态类型来实现这个改动。代码如下:
1 | public class HexMesh : MonoBehaviour |
使用静态类型的列表会有很大的效率提升么?
这只是一个说明该如何使用列表的简单改动,虽然提升不大但值得这么去做,即使我们现在不用太过担心它的效率问题。
这样改动后效率会有些提升,因为列表共享以后所需要的内存分配要少上一些。当使用20乘20的地图块时,节省的内存差不多刚超过100MB。
代码经过优化之后,在性能上有些许的提升。因为有了更大尺寸的地图,我们就的摄像机现在已经不能完全显示整个地图了,在接下来的章节中,我们将会增加对摄像机控制的功能,让它可以移动和旋转视角,方便我们在运行时编辑地图。