2017-04-14 100 views
2

我一直在研究一个非常简单的iOS游戏,只有三个场景;开始场景,游戏场景和场景游戏。我正在运行游戏并使用分析器分析性能,并且我注意到当我更改使用“SceneManager.LoadLevelAsync()”函数的场景时,CPU使用率大约为90%。这只是不到一秒钟,然后CPU使用率再次下降,我得到70-80 fps左右,但这让我想知道,如果这样一个简单的游戏对我来说会更有效率,只需要几个UI“屏幕”(基本上只是一组对象,我可以激活和失活),这是我对我的暂停屏幕(它只是一个覆盖)。在Unity中更改场景或使用不同的UI屏幕更高效吗?

当然,这可能会有其自身的困难,就像我不得不在同一场景中重新启动游戏一样,但它可能会帮助我解决运行我在音乐管理器上构建的静音功能的问题,这是实例在启动现场,从一个按钮,是在我的游戏场景,我就不必使用上的音乐管理器或我的分数经理“DontDestroyOnLoad()”函数(存储比分上的游戏要显示在场景)。但是拥有这么多失活的对象会是低效的,还是说Unity能够很好地管理这样的事情?

回答

2

在我个人的opinon,菜单系统应该是在一个场景。

有对每个菜单屏幕不同的场景会引起开销。即使是几微秒,它也会频繁地在菜单之间导航时影响用户体验。这是因为加载和销毁场景中的每个UI游戏对象。

虽然设在一个场景菜单系统只需要激活和gameobjects而不是实例化和破坏的失活。

你可以有一个根对象菜单并为其分配一个画布组件,然后你可以为每个屏幕添加不同的面板,并将它们分配帆布组上落平稳切换他们。

以下是创建菜单系统一个很好的教程:​​

希望这有助于。

+0

真棒谢谢,这回答了我的问题,也感谢链接到教程,这太棒了! – jedimaster7

2

你是对的,如果你的游戏/应用程序很小,你应该保持它尽可能简单,如果你的场景之间的唯一区别只是你的“在游戏中”场景不是那么大,你可以肯定继续使用相同的场景并使UI激活/停用。

*无效物体做吃内存。

+0

谢谢!我会稍微改变我的游戏,尤其是因为UI非常简约,所以它不应该占用内存。 – jedimaster7

相关问题