我游戏的大多数关卡都大于屏幕尺寸,因此相机会在关卡周围跟随玩家。该关卡中填充了多个对象,例如平台和地雷。从总体上看,这些平台和地雷永远不会在该级别上移动(从不使用update方法或使用SKActions进行任何操作),但在屏幕上它们似乎在移动,因为相机正在关注玩家。我知道将场景的shouldRasterize属性设置为true可以提高不移动节点的性能。所以我的问题是,场景是否将平台和地雷视为移动或静止的?在这种情况下,将shouldRasterize属性设置为true会对我有帮助吗?

最佳答案

如您所述,shouldRasterize确实将节点(和每个后代)的呈现保存在内存中。因此,如果下一帧没有任何改变,则使用缓存的渲染。

您说您的场景并没有真正改变。你确定吗?连播放器都没有?如果是这样,那么shouldRasterize = true应该使渲染速度更快。否则,即使一段时间内即使出现单个可见节点更改,也不应将shouldRasterize设置为true

只是测试一下

在这种情况下,测试最佳方法非常容易。只需在两种模式下(shouldRasterize = false,然后是shouldRasterize = true)运行游戏,然后检查帧率何时更高。

最后考虑

您为什么要考虑这种优化?你的游戏慢吗?如果您的游戏只是场景滚动而没有任何移动,而且速度很慢,则可能存在一些问题,您应在应用任何优化之前解决。

09-04 23:25