Inspector Plugins
Introduction
Godot 3.1 comes with a new inspector. Adding plugins to it is now possible.
This tutorial will explain the process.
Inspector Plugin
This short tutorial will explain how to make a simple value editor. Create an EditorInspectorPlugin first. This is needed to initialize your plugin.
GDScript
# MyEditorPlugin.gd
extends EditorInspectorPlugin
func can_handle(object):
# if only editing a specific type
# return object is TheTypeIWant
# if everything is supported
return true
func parse_property(object,type,path,hint,hint_text,usage):
if (type==TYPE_INT):
add_custom_property_editor(path,MyEditor.new())
return true # I want this one
else:
return false
Editor
Here is an editor for editing integers
GDScript
# MyEditor.gd
class_name MyEditor
var updating = false
func _spin_changed(value):
if (updating):
return
emit_changed( get_property(), value )
func update_property():
var new_value = get_edited_object()[ get_edited_property() ]
updating=true
spin.set_value( new_value )
updating=false
var spin = EditorSpinSlider.new() # use the new spin slider
func _init():
# if you want to put the editor below the label
# set_bottom_editor( spin )
# else use:
add_child( spin )
# to remember focus when selected back
add_focusable( spin )
spin.set_min(0)
spin.set_max(1000)
spin.connect("value_changed",self,"_spin_changed")