我的大多数游戏关卡都比屏幕尺寸大,因此摄像机会跟随玩家在关卡周围移动。该关卡中充满了多种物体,例如平台和地雷。从整体上看,这些平台和地雷不会在关卡中移动(不会在 update
方法中执行任何操作或使用 SKActions
),而是在屏幕上它们似乎在移动,因为摄像机正在跟随玩家。据我所知,将场景的 shouldRasterize
属性设置为 true
应该可以提高不移动节点的性能。所以我的问题是场景是否将平台和地雷视为移动或静止/将 shouldRasterize
属性设置为 true
在这种情况下可以帮助我解决问题吗?
最佳答案
正如您所指出的,shouldRasterize
确实将节点(以及每个后代)的渲染保存在内存中。因此,如果下一帧没有任何变化,则使用缓存的渲染。
你说过你的场景没有什么真正改变。你确定吗?连玩家也不行?如果是这样,那么 shouldRasterize = true
应该会使渲染速度更快。否则,即使单个可见节点的外观随时间发生变化,也不应将 shouldRasterize
设置为 true
。
测试一下
在这种情况下测试最佳方法非常容易。只需在两种模式下运行游戏(shouldRasterize = false
,然后 shouldRasterize = true
)并检查帧率何时更高。
最终考虑因素
您为什么考虑这种优化?你的游戏慢吗?如果您的游戏只是一个场景滚动而没有任何 Action 并且速度很慢,那么您可能应该在应用任何优化之前修复一些问题。
关于ios - 使用场景的shouldRasterize属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38127750/