嘿 guys, 问一个非常基本的问题。我想知道人们怎么设计游戏内的菜单。

我有两个主要担忧:1)我可能漏掉了可以大大简化这种劳烦任务的东西,2)我当前的做法可能会导致后期问题。

TLDR - Flexpanels是否有用?如果不使用,如何设置大量视觉元素的绘制数据,并根据文本/窗口尺寸等动态改变它?一般想要知道人们的方法是什么,他们的方法和我的是否相同。

我做菜单的方式很直接。首先我创建一个视觉元素。然后我在一个共享的UI层里创建一个对象,定义其在屏幕上的x、y坐标(我使用一个大小与游戏视图相同的房间作为沙盒来测试元素的外观),然后决定绘制sprite的缩放倍数,然后绘制它。

然而,这变得越来越讨厌,尤其是当我想让资产根据文本变化进行动态位置改变时。比如说,想让多个interactive按钮,绘制在列中,我也打算让玩家改变文本大小。因此,位置就不好说“绘制按钮#3 在 300, 300 处”,就那样。

为了避免额外的Draw函数负担,我基本上让每个菜单或子菜单设置其大多数元素的UI数据, 这个脚本在菜单被“打开”的时候运行。

所有这些都有效。但是,精细调整坐标,这花费了我几个小时甚至几天的时间,而且一直盯着这些值觉得非常枯燥,即使我组织得不错,并且有非常清晰的注释(我的ADHD是主要坏蛋,但还是如此)。

是否有更加简单的方法,可以让这个过程变得更快呢?我对flex panels还不熟悉,而且感觉这个知识上升了台阶。怕花时间学习,如果结果与直接创建一个对象,并绘制UI层里的资源相差不大,那也没劲。