最終確認日

Godotでプラグインを自作してみる

公式ドキュメント

作りたいもの

本で紹介されいていたUnity製の通信ライブラリをGDScriptに置き換えたい。

プラグインの作り方

  1. ディレクトリ構成(固定)
addons/
└── my_plugin/
    ├── plugin.cfg
    ├── plugin.gd (EditorPlugin継承)
    └── その他のスクリプト・シーン・アセット
  1. plugin.cfg の書き方
[plugin]
name="MyPlugin"
description="My first Godot plugin"
author="Your Name"
version="1.0"
script="res://addons/my_plugin/plugin.gd"
  1. plugin.gd の基本
@tool
extends EditorPlugin

func _enter_tree():
    # プラグイン有効化時に呼ばれる
    pass

func _exit_tree():
    # プラグイン無効化時に呼ばれる
    pass
  1. 有効化方法
  • エディタで「プロジェクト → プラグイン」メニューを開く
  • 作成したプラグインが表示されていればON/OFF可能

プラグインをプロジェクトに追加する方法

とりあえず作ってみる

サンプルプロジェクト内で適当に作ってみる。

ディレクトリ構成

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.cfgplugin.gd は今回のような場合には用意しなくてもいいっぽい?

サイトアイコン
公開日
更新日