我游戏的大多数关卡都大于屏幕尺寸,因此相机会在关卡周围跟随玩家。该关卡中填充了多个对象,例如平台和地雷。从总体上看,这些平台和地雷永远不会在该级别上移动(从不使用update
方法或使用SKActions
进行任何操作),但在屏幕上它们似乎在移动,因为相机正在关注玩家。我知道将场景的shouldRasterize
属性设置为true
可以提高不移动节点的性能。所以我的问题是,场景是否将平台和地雷视为移动或静止的?在这种情况下,将shouldRasterize
属性设置为true
会对我有帮助吗?
最佳答案
如您所述,shouldRasterize
确实将节点(和每个后代)的呈现保存在内存中。因此,如果下一帧没有任何改变,则使用缓存的渲染。
您说您的场景并没有真正改变。你确定吗?连播放器都没有?如果是这样,那么shouldRasterize = true
应该使渲染速度更快。否则,即使一段时间内即使出现单个可见节点更改,也不应将shouldRasterize
设置为true
。
只是测试一下
在这种情况下,测试最佳方法非常容易。只需在两种模式下(shouldRasterize = false
,然后是shouldRasterize = true
)运行游戏,然后检查帧率何时更高。
最后考虑
您为什么要考虑这种优化?你的游戏慢吗?如果您的游戏只是场景滚动而没有任何移动,而且速度很慢,则可能存在一些问题,您应在应用任何优化之前解决。