以前、Godot エディタ上で 現在編集中の GDScript のメソッドやプロパティ、シグナルを一覧表示できるプラグイン「Script Explorer」を公開しました。
初回の記事はこちら:
今回はその Script Explorer に機能追加を行ったので、実装内容と動作イメージを紹介します。
今回追加した機能:フローティングウィンドウ表示
Script Explorer のドック右上にある ◱ ボタンを押すことで、
ドックに表示されている内容を 独立したフローティングウィンドウとして表示できるようになりました。
これにより、
- エディタのレイアウトに縛られず、
- 好きな場所に置いて、
- サイズも自由に変えられる、
という、より柔軟な使い方ができるようになります。
動作イメージ
フローティングさせたスクリプトエディターの横に表示しているイメージです。
フローティングウィンドウの特徴
- エディタから独立した小窓として表示
- ドック版と内容は完全に同期(メソッド/プロパティ/シグナル一覧)
- クリックすると該当行にジャンプする動作もドック版と同じ
- いつでもワンクリックでドック表示 ↔ ウィンドウ表示 を切り替え可能
特に大きな画面で Godot を開いている場合や、
Script Explorer の内容を「常に見える位置」に置きたい場合に便利です。
どんなときに便利か?
- 大量のメソッドやシグナルがあるスクリプトを編集するとき
- デバッグ中に参照したいプロパティが多いとき
- サイドドックを閉じて作業しているときでも、別ウィンドウで一覧を保持したい場合
Godot の UI は柔軟ですが、
「情報を独立したウィンドウで常時参照する」
という用途にはデフォルト機能だけだと物足りないため、今回の追加でかなり使い勝手が向上しました。
実装ポイント(Godotエディタプラグイン側の変更)
今回の機能追加の中心は以下の2点です:
1. Window ノードを動的に生成してフローティング表示
var floating_window := Window.new()
parent.add_child(floating_window)
エディタの EditorBaseControl に Window を追加し、
その中に Script Explorer の UI(dock.tscn)を複製して配置しています。
2. シグナル類を全てフローティング側にも再接続
もともと Script Explorer には、
- method_selected
- property_selected
- signal_selected
といったシグナルを持っていましたが、
フローティングウィンドウ側でも同じ動作をするように、
Dock と同じ接続をすべて行っています。
floating_dock.method_selected.connect(_on_method_selected)
3. ツリー表示の縦伸びを調整(Window でも自然なレイアウトに)
Tree が Window 内で正しく伸びるように、
size_flags_vertical = SIZE_EXPAND_FILL を付与することでレイアウトを調整しています。
インストール方法
-
addons/script_explorerをプロジェクトに配置 - Godot → プロジェクト設定 → プラグイン → Script Explorer を ON
✔ GitHub リンク
ダウンロードしてすぐ使えるリリース版は↓↓こちら↓↓
今後追加予定の機能
-
メソッド名検索バー
-
リアルタイム更新
-
折りたたみ表示
-
public/private 分類
-
型付き2列ツリービュー
-
別プラグインですが、、、プロジェクト内のスクリプト間の呼び出し関係の解析やシーンとスクリプトの対応情報の簡易アナライザーを作成中です。(動作が重い、、、、)
おわりに
Godot のエディタプラグインは小さな機能でも作業効率を大きく変えてくれます。
今回のフローティングウィンドウ機能は、Script Explorer をより快適に使えるようにするための第一歩になるかな!?
もし気に入っていただけたら、
GitHub のスターやフィードバックをいただけると嬉しいです!
励みになります。
