And*_*w T 3 optimization unity-game-engine
我一直在为 iOS 开发一个非常简单的游戏,它只有三个场景;开始场景、游戏场景和游戏结束场景。我正在运行游戏并使用分析器分析性能,我注意到当我改变场景时,使用“SceneManager.LoadLevelAsync()”函数,CPU 使用率约为 90%。这当然只持续不到一秒钟,然后 CPU 使用率再次下降,我得到了大约 70-80 fps,但这让我想知道对于这样的简单游戏来说,如果我只拥有几个UI“屏幕”(基本上只是一组我可以激活和停用的对象),这就是我对暂停屏幕所做的(它只是一个叠加层)。
当然,这可能有其自身的困难,就像我必须在同一场景中重新启动游戏一样,但它可能会帮助我解决运行我在音乐管理器上构建的静音功能的问题,该功能在开始时实例化场景,从我游戏场景上的一个按钮,我不必在音乐管理器或我的乐谱管理器上使用“DontDestroyOnLoad()”函数(它存储要在游戏结束场景上显示的乐谱)。但是,拥有这么多未激活的对象会不会效率低下,还是 Unity 非常擅长管理此类事情?
在我个人看来,菜单系统应该在一个场景中。
每个菜单屏幕都有不同的场景会导致开销。即使是几微秒,它也会在频繁在菜单之间导航时影响用户体验。这是因为场景中每个 UI 游戏对象的加载和销毁。
而基于一个场景的菜单系统只需要激活和停用游戏对象,而不需要实例化和销毁。
您可以为菜单设置一个根对象并为其分配一个画布组件,然后您可以为每个屏幕添加不同的面板并为其分配画布组以平滑地打开和关闭它们。
这是创建菜单系统的好教程:https : //www.youtube.com/watch?v=DNqTUwnpLvI
希望这可以帮助。