【问题标题】:what is the best practice in creating menus in unity?统一创建菜单的最佳做法是什么?
【发布时间】:2015-12-30 13:52:04
【问题描述】:

在我们正在设计的手机游戏中,存在三个在某种程度上相似的菜单:

  • 主菜单(有一堆图标,如主页、设置、共享、切换 声音,....)
  • 暂停菜单(几乎相同,只是文本和图标大小和 位置变化)
  • EndGame(非常类似于带有重启游戏选项的暂停菜单)

现在,我至少可以想到两种方法来创建这些菜单:

  • 创建一个菜单并更改所需图标/文本的位置和大小 在脚本中
  • 只需在统一 UI 中创建 3 个不同的面板并调用每个 需要。

由于两种情况下使用的资源是相同的(嗯,在第二种情况下可能会有更多游戏对象),哪一种是更好的解决方案? 我可以像创建菜单一样轻松编写脚本(两者的开发时间几乎相同)

【问题讨论】:

  • 我想我需要澄清一点:如果我创建 3 个面板,我将使用一些图标,如主页、静音和设置 3 次。而当使用脚本移动图标并显示/隐藏它们时,意味着我只会使用它们一次。它会改变应用程序的有效负载或性能吗?我有兴趣了解统一如何处理资源。创建重复的游戏对象便宜吗?还是我会考虑重用我之前创建的东西?

标签: unity3d


【解决方案1】:

我建议制作某种 MenuViewManager 类,能够从 XML 文件加载菜单视图。这可以让您在未来获得更好的翻译系统,并且可以对变化非常敏感。

在这里我找到了一些文章,可以帮助您开始: http://unitynoobs.blogspot.com/2011/02/xml-loading-data-from-xml-file.html

【讨论】:

  • 有趣的建议。非常感谢您。你的意思是我创建单独的面板并从 xml 文件中获取设置,或者只是使用 xml 文件重新排列图标?顺便说一句,这些菜单不会进行太多定制或更改,因此直接统一实现它们可能是一个更好的主意
【解决方案2】:

我建议使用一个带有多个面板的 Canvas。每个面板可以用于不同的菜单(主菜单、暂停、游戏结束)或同一菜单中的不同选项集(主菜单、设置)。

在画布上有一个脚本,其中包含拖动每个面板的位置。然后通过代码打开/关闭面板。

您还可以创建一个附加到面板的脚本,该脚本具有公共 Button 变量,您可以在检查器中分配这些变量。您在检查器中拖到那里的 Button 对象可以是预制件,因此您可以在任何菜单中重复使用它们。

重复使用的次数越多,效率就越高。

【讨论】:

  • 感谢您的回复。这实际上是我建议你提倡的第二种方式。我同意这更容易处理。但你能澄清一下“为什么”的表现吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-10-07
  • 2019-11-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-20
相关资源
最近更新 更多