【学习笔记】简单创建按钮点击式开始菜单

本学习笔记旨在记录学习agm的过程,并将学习的过程整理出来,分享各位的朋友进行参考,笔者水平不高,有不对的地方,欢迎批评交流与指正。

本篇主要为如何快速简创建一个简单的开始菜单界面,以及实现一些基础功能。

首先新建一个场景,如果你不需要那么多东西,你可以先只创建一个GameScene的场景,并将其改为你所需要的名字



将你需要的图片和拖入场景,调整大小
image

然后创建三个TextureButton节点改成你需要的名字
image
然后打开右侧菜单栏的纹理,从上到下前三个分别是图标默认状态,第二个是按下后的状态,第三个是鼠标悬停在按钮上的状态

现在场景已经搭建好了,开始准备功能控制,新建一个GameObject

这里我选择在项目数据库中使用变量来控制功能,因此我在数据库—项目变量中新建了一个变量以供读取。

给刚刚新建的GameObject新建一个VS脚本,设置一个初始动作和开始游戏的动作,以这个变量变化为切换条件,动作执行结束当前场景


这里我又新建了一个场景,并且过渡条件为上个场景结束


现在将这个创建的GameObject实例化到标题界面场景,注意,这里的GameObject必须置于Backgroud节点下,不然会导致游戏闪退。

这时你可以给想要添加功能的按钮点击添加脚本

创建脚本后点击信号连接到方法,选择button_down(),然后选择自己,会自己生成方法,然后使用调用脚本更改项目数据库


代码如下

func _on_button_down() -> void:
	GameManager.update_project_database_variable("Scene_Idx",1)
	pass # Replace with function body.


保存后进行测试
鼠标悬停在按钮上后会更改颜色

点击后切换场景,切换成功

其他功能也可以以此方法通过调用以及创建脚本更改数据库来实现,此处不一一赘述,笔者测试至此,如果有做的不够好的请见谅,也欢迎指正补充,一同学习探讨。

5 Likes

感谢,感谢,很有用,已经实现了此功能!!!

1 Like

备注:如果想实现多个场景跳转,那可以复制黏贴此功能,但是不要忘记,在进入新场景的状态机里,把设定的这个变量初始化。

我在利用楼主提供的功能的时候,出现了一个问题,就是转场的时候,会报错。报错具体问题出在新建的这个控制物体上。
为了解决这个错误,最终我优化了楼主的方法,测试成功。
1 并不需要这个物体来进行检测,直接删除。
2 在场景编辑框里,给转场的条件,设定为,检测变量,当这个变量数字变化为设定的数字的时候,就转场。
(这样,只要在按钮上,加一个信号源,改变了一个变量,而场景检测到这个变量改变,就可以转场了!)