🎩
[Godot] GDScript Input Field Plugin を入れて、REPL として使う。
背景
シーンの実行中に使える REPL は Panku Console を使用しているんですが、Godotエディタ上で実行できる REPL を探していたら GDScript Input Field Plugin というのが触ってみてよかったので紹介です。
addon
概要
上記、GDScript Input Field Plugin をプラグインとして入れると、画面下部の出力パネルにテキストフィールドが追加されます。
新たなパネルを増やさず目立たないところが粋だなと思いました。
ここにテキストを入れて Enter を押下すると実行結果を取得できます。
Shift + Enter を押下すると、改行できるので複数行のコードも実行できます。
class_name
で定義したクラスや、EditorInterface
にもアクセスできます。
自分用の便利関数を定義
例えば、下記のような gdscript を用意します。
xxx/helper.gd
@tool
extends EditorScript
class_name Helper
func current() -> Node:
return get_scene()
func hello():
return 'Hello gdscript!'
出力パネルの入力欄で下記を実行し、変数として格納。
var helper = Helper.new()
すると、
helper.current().name
=> &"Example1"
helper.hello()
=> "Hello gdscript!"
のように呼べます。
変数 helper
に入れた状態のまま、スクリプトを編集したり関数を増やしても動的に反映されます。(gdscript ってそういう仕様なんですかね。初めて知りました。)
EditorScript
の実行は、通常 _run
メソッドを定義して ctrl-shift-x で実行する(参考: https://docs.godotengine.org/ja/4.x/classes/class_editorscript.html )らしいんですが、上記プラグイン上で _run
メソッド以外も普通に呼べるようになるので結構便利だなと感動しました。
Discussion