关于技能树界面的想法

我目前正试图在菜单场景中构建所谓的技能树。

然而,由于菜单场景不进行相机控制,

如果我试图构建一个超出相机视野范围的广阔技能树,相机不会随之移动,这让我很困扰。

难道在当前的情况下,只能在游戏场景中创建,然后通过从主场景等进行场景切换来实现吗?

我也想到了另一种方法,即移动菜单场景中的对象群,以模拟相机移动的效果,

但这似乎会让工作变得非常繁琐,因此我暂时搁置了这个方案。

技能树是如何构建的,你期望的移动方式是什么(移动技能树还是移动相机)?

AGM 基于这样的假设:菜单场景固定于屏幕尺寸,开发者会使用滚动、选项卡或其他子分区来管理物品栏或游戏设置。

1 个赞

菜单场景没法进行屏幕移动,确实是一个目前的AGM设定。
我之前在一个大地图上,构建了一些小建筑,打开建筑来升级各个板块。
在固定镜头不进行屏幕移动的菜单中,我都是采用的直接弹出菜单场景。
但是我开了一个专门聊天的场景,里面是需要移动屏幕,构建景深的,这时候我就新开了一个游戏场景来构建,就能实现了。
唯一需要注意的是,场景切换会导致内部的各种变量重置,所以要特别注意场景切换的衔接。
我的建议就是这种比如超出尺寸的功能,然后用到镜头移动,就新开场景来实现。

1 个赞

谢谢。目前我假设的是摄像机移动。

看来菜单场景确实是固定屏幕尺寸的,所以我想创建一个新的游戏场景。

>需要注意的是,由于场景切换会重置内部的各种变量,因此在场景之间的过渡时需要特别小心。

谢谢。我会使用项目变量来保存这些变量。

1 个赞

在决定使用独立场景之前,有一件事值得尝试:移动树并不意味着要逐个移动对象,而这正是你之前放弃它的原因。

让每个节点保持在其固定的树坐标上,并只维护一个滚动偏移量。在绘制时,你将每个节点绘制在其坐标加上该偏移量的位置,并跳过任何结果落在可见矩形之外的节点。这样,平移操作只需改变一个变量,而不需要逐个处理对象,而跳过不可见节点则是保持大型树绘制高效的关键。

这也规避了 serbow 指出的问题,因为你从未离开菜单场景,所以过渡时不会有任何重置发生。

如果你需要真正的相机缓动、视差效果或任何具有深度感的元素,独立的游戏场景仍然是更好的选择。但对于只需要平移的平面树来说,使用偏移量通常比场景切换更省事。

我并没有在 AGM 中具体实现过这一点,因此具体的 API 未经验证。但这种模式是滚动面板的常规做法,并且在大多数引擎中都能适用。

1 个赞

谢谢。从那以后我尝试了各种方法,

・移动 MenuScene,或者 MenuScene 的 CanvasLayer 的偏移量 → 无法移动

・移动游戏对象 → 可以移动

由此确认了这一点,

因此,通过以下两种方法似乎可以实现预期的功能:

① 为屏幕图标等创建通用的对象组,并通过指定组来移动对象

② 将屏幕图标等所需的所有对象都存储在一个游戏对象中,然后移动该对象

test6

1 个赞