您当前的位置: 首页 >  编辑器

开发游戏的老王

暂无认证

  • 2浏览

    0关注

    803博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

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

开发游戏的老王 发布时间:2020-07-28 21:34:57 ,浏览量:2

Godot Engine 3.2.3.rc1

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

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

步骤 1. 创建插件框架

在这里插入图片描述在项目设置(Project Settings)中找到插件(Plugins)标签,然后点击创建,实际上这一步是让我们为插件创建如下几样东西:

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

在这里插入图片描述

在这里插入图片描述创建完毕后你就拥有了下面的文件 在这里插入图片描述 这个配置文件手动创建也是可以的

[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

非常简单的一个按钮 在这里插入图片描述

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 在这里插入图片描述 点击按钮就会执行_say_hello了。

在这里插入图片描述

关注
打赏
1656935939
查看更多评论
立即登录/注册

微信扫码登录

0.0428s