本文主要是介绍【Godot4.2】基于MenuBar和PopupMenu的菜单栏生成自定义数据EMBD及其解析,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
概述
用Godot的MenuBar
和PopupMenu
手动创建有复杂结构和设置选项的菜单栏总是一件繁琐的事情,用代码形式也无法十分优雅。
更好的方式就是选择用数据形式解析和加载,这样我们只需要专注于修改数据,就可以修改实际生成的节点嵌套结构。
【2024年3月1日00:50:59】目前只是一个未经实际代码验证的基础思路,所以后续可能会改进或推翻。这与Tree控件自定义树形数据ETD有一定的相似性,又有所区别。
因为是用于MenuBar
的生成,所以全名叫简易菜单栏数据(Easy MenuBar Data,EMBD)。
数据形式
文件 | Alt+F打开 | Ctrl+O | 0 | □ | ✕保存 | Ctrl+S | 1 | ○另存为 | Ctrl+Shift+S---关闭 | Ctrl+W---> 最近打开
===
编辑撤销 | Ctrl+Z 重做 | Ctrl+Shift+Z---清空 | Alt+Del
===
帮助手册 | F1论坛关于
###
最近打开文件1文件2---全部清空===
设计和解析思路
###\n
将数据分为主菜单栏部分和子菜单部分- 主菜单栏部分和子菜单部分各自用
===\n
分出单个PopupMenu
所需数据,每个PopupMenu
数据块,是一个有二级缩进的结构 - 每个
PopupMenu
数据块用\n\t
分出具体的菜单项数据,第1项为PopupMenu
的名称,后面所有项为PopupMenu
的菜单项 - 每个菜单项数据始终占据一行
具体的菜单项
---标题 | 快捷键 | 图标索引 | 可选状态标记 | 禁用标记
---
代表分割线,可以单独出现也可以与后续数据一同出现---
与标题一起出现时,与标题紧密连接- 其余数据项之间用
|
进行分隔 - 快捷键:通过
+
切分并解析,没有快捷键可以直接留空或用特殊的字符串如null
或no
等表示 - 图标索引:对应
icons
属性下的图标索引 - 可选状态标记:
■
、□
、○
、●
分别代表复选框和单选框的选中、未选中状态 - 禁用标记:
✕
表示禁用
带有子菜单的菜单项
> 子菜单名
可以将同名的PopupMenu
作为子菜单。
这篇关于【Godot4.2】基于MenuBar和PopupMenu的菜单栏生成自定义数据EMBD及其解析的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!