最終確認日
Godotでプラグインを自作してみる
公式ドキュメント
作りたいもの
本で紹介されいていたUnity製の通信ライブラリをGDScriptに置き換えたい。
プラグインの作り方
- ディレクトリ構成(固定)
addons/
└── my_plugin/
├── plugin.cfg
├── plugin.gd (EditorPlugin継承)
└── その他のスクリプト・シーン・アセット
plugin.cfg
の書き方
[plugin]
name="MyPlugin"
description="My first Godot plugin"
author="Your Name"
version="1.0"
script="res://addons/my_plugin/plugin.gd"
plugin.gd
の基本
@tool
extends EditorPlugin
func _enter_tree():
# プラグイン有効化時に呼ばれる
pass
func _exit_tree():
# プラグイン無効化時に呼ばれる
pass
- 有効化方法
- エディタで「プロジェクト → プラグイン」メニューを開く
- 作成したプラグインが表示されていればON/OFF可能
プラグインをプロジェクトに追加する方法
- 手動でダウンロードして
addons
配下に配置する - サブモジュール(Git)を使って配置する
とりあえず作ってみる
サンプルプロジェクト内で適当に作ってみる。
ディレクトリ構成
addons/
└── network_lib/
├── plugin.cfg # プラグイン定義ファイル
├── plugin.gd # EditorPlugin 拡張(エディタ機能を追加する場合)
├── network_def.gd # イベントタイプと状態クラス(enum /NetEventState)
├── packet_queue.gd # スレッドセーフな送受信バッファ
└── transport_tcp.gd # TCP通信クラス
plugin.cfg
plugin.cfg
[plugin]
name="NetworkLib"
description="TCP/UDP communication system for Godot"
author="uruly"
version="1.0"
script="res://addons/network_lib/plugin.gd"
plugin.gd
plugin.gd
extends EditorPlugin
func _enter_tree():
print("NetworkLib plugin loaded.")
func _exit_tree():
print("NetworkLib plugin unloaded.")
plugin.cfg
と plugin.gd
は今回のような場合には用意しなくてもいいっぽい?

公開日
更新日