首页 > Godot频道 > 【Godot学习笔记】 > Godot学习笔记之拓展编辑面板(三)
2025
02-18

Godot学习笔记之拓展编辑面板(三)

如果单纯的只是序列化一些属性,可以不用添加脚本,如下图所示,选中任意节点然后Add metadata就可以添加属性了。

Godot学习笔记之拓展编辑面板(三) - 雨松MOMO程序研究院 - 1

而且metadata还可以在运行时添加,只需要获取任意节点对象都可以访问它。

如果希望在编辑面板中监听数值的变化,比如设置某些数值修改后执行一些Editor下的逻辑就需要脚本了。如下图所示,这里就和unity很像了,可以添加点击按钮,监听属性值的变化。

Godot学习笔记之拓展编辑面板(三) - 雨松MOMO程序研究院 - 2

目前已经可以拓展不少逻辑了,但是现在面板非常丑,无法进一步的定制面板,而且不能拓展已有属性的面板,比如我想给粒子系统单独加一些面板属性,而不影响粒子系统原有的布局。如下图所示,接着Project->Project Setting中间创建插件,选择C#版本,插件名字可以输入InspectorPlugin.cs

Godot学习笔记之拓展编辑面板(三) - 雨松MOMO程序研究院 - 3

注意这里的#if TOOLS  插件代码不需要运行时,打包后宏里的代码会被剥离。 如果只是在类前面写了[Tool] 则打包不会剥离,含义是编辑器和运行时都可执行。

还需要继承EditorInspectorPlugin实现具体细节,这样就实现了拓展已有对象的面板。

这个面板的效果太丑了,我们最好可以继续自定义。如下图所示,创建一个界面,VBoxContainer(垂直布局)和HBoxContainer(水平布局)我们可以任意的自定义效果了,怎么样?有种unity的UIToolkit的感觉了吧。

Godot学习笔记之拓展编辑面板(三) - 雨松MOMO程序研究院 - 4

接着在修改CPUParticles3DInspector.cs 加载布局这里改成从文件加载,大家注意.tscn的路径。

这里在拓展一下.tscn的含义,它就相当于unity的prefab和scene文件,在godot中统一用.tscn保存,好比万物皆场景的感觉。这样粒子特效的拓展面板就可以按照我们标记的效果来了。

Godot学习笔记之拓展编辑面板(三) - 雨松MOMO程序研究院 - 5

我们还可以做自定义窗口,类似unity的edtiorWindows,插件都必须处于开启状态。

Godot学习笔记之拓展编辑面板(三) - 雨松MOMO程序研究院 - 6

Godot学习笔记之拓展编辑面板(三) - 雨松MOMO程序研究院 - 7

目前的拓展方法以及可以解决很多问题,我使用的最新版本godot4.4并没有提供像unity那种MenuItem菜单的功能。

最后编辑:
作者:雨松MOMO
专注移动互联网,Unity3D游戏开发
捐 赠写博客不易,如果您想请我喝一杯星巴克的话?就进来看吧!

留下一个回复

你的email不会被公开。