Godot Engine:编辑器插件(Editor Plugin)开发 之 Hello World

Godot Engine 3.2.3.rc1

文章目录

      • 步骤
        • 1. 创建插件框架
        • 2. 创建UI
        • 3. 写脚本
      • 演示

之前写过一篇博文《GDScript:使用EditorScript开发简单的编辑器脚本》,编辑器脚本(EditorScript只提供了一个run方法,它的访问能力也很有限,所以只能实现一些非常简单的功能,编辑器插件(Editor Plugin)就强大太多了,可以访问场景树,访问编辑器UI,甚至可以直接使用Godot的UI系统创建插件的UI

步骤

1. 创建插件框架

Godot Engine:编辑器插件(Editor Plugin)开发 之 Hello World_第1张图片在项目设置(Project Settings)中找到插件(Plugins)标签,然后点击创建,实际上这一步是让我们为插件创建如下几样东西:

  • 插件名。
  • 插件文件夹,注意:所有插件都会被统一放在"res://addons"文件夹下,所以你创建的只是一个子文件夹。
  • 名为"plugin.cfg"插件配置文件。
  • 插件描述,作者,版本号。
  • 编辑器脚本,这个才是真正要完成逻辑的脚本,可以理解为这个插件的main函数。

Godot Engine:编辑器插件(Editor Plugin)开发 之 Hello World_第2张图片

Godot Engine:编辑器插件(Editor Plugin)开发 之 Hello World_第3张图片创建完毕后你就拥有了下面的文件
Godot Engine:编辑器插件(Editor Plugin)开发 之 Hello World_第4张图片
这个配置文件手动创建也是可以的

[plugin]

name="HelloWorld"
description="HelloWorld Plugin"
author="开发游戏的老王"
version="0.0.1"
script="HelloWorld.gd"

初始的脚本内容

注意:EditorPlugin是继承于Node

tool
extends EditorPlugin

func _enter_tree():
	pass

func _exit_tree():
	pass

2. 创建UI

非常简单的一个按钮
Godot Engine:编辑器插件(Editor Plugin)开发 之 Hello World_第5张图片

3. 写脚本

#HelloWorld.gd
tool
extends EditorPlugin

var p :Control = null

func _enter_tree():
	p = load("res://addons/HelloWorld/SayHello.tscn").instance()
	p.get_node("Btn_say_hello").connect("pressed",self,"_say_hello")

func _input(event):
	if Input.is_key_pressed(KEY_F11) and not is_a_parent_of(p):
		add_child(p)
	if Input.is_key_pressed(KEY_F12) and is_a_parent_of(p):
		remove_child(p)
		

func _say_hello():
	print("Hello from Editor Plugin")

演示

F11/F12分别为显示和隐藏UI
Godot Engine:编辑器插件(Editor Plugin)开发 之 Hello World_第6张图片
点击按钮就会执行_say_hello了。

Godot Engine:编辑器插件(Editor Plugin)开发 之 Hello World_第7张图片

你可能感兴趣的:(#,Godot,实践,Godot笔记,Godot,Engine,游戏开发)