最終確認日
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 は今回のような場合には用意しなくてもいいっぽい?

公開日
更新日