mcpField
U
unity-event

unity-event

github.com/besty0728開発1.9k79 回インストール今日更新
リポジトリ

unity-event について

unity-event は、UnityEvent の永続リスナーを管理する Unity スキルモジュールです。Inspector でボタンや Toggle などのコールバックを設定する用途に向き、リスナーの確認、追加、変更、呼び出し、コピー、削除ができます。

主な機能

  1. 01コンポーネント上の UnityEvent を確認
  2. 02リスナーと件数の取得
  3. 03永続リスナーの追加・変更・削除
  4. 04リスナーの一括追加やコピー
  5. 05リスナー状態の設定と実行時呼び出し

活用シーン

  1. 01ボタンの永続コールバックを設定
  2. 02イベントが呼び出すメソッドを確認
  3. 03イベント間でリスナーをコピー
  4. 04実行時に UnityEvent を明示的に呼び出す

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/besty0728/unity-skills --skill unity-event

インストール後、Claude Code で/unity-eventを入力して読み込まれたか確認します。

詳細

このモジュールのスキルを呼び出す前に: 名前や説明からパラメーターを推測してスキルを呼び出そうとしている場合は、いったん停止してください。まずこのファイルを読むか、GET /skills/recommend?includeSchema=true でスキーマを取得してください。recommend/schema からパラメーター定義をすでに取得している場合は、そのまま dryRun に進めます。

トリガー

  • Inspector で UnityEvents を接続する
  • ボタンやトリガーのコールバックを接続する
  • 永続リスナーをスクリプトで設定する
  • 在 Inspector 里挂接 UnityEvent、连接按钮或触发器回调、脚本化持久监听

イベントスキル

UnityEvents(例:Button.onClick、Toggle.onValueChanged)の永続リスナーを確認および変更します。Inspector のイベントドロップスロットに表示されるリスナーと同じものです。

動作モード

  • Approval:参照系スキル(event_get_listeners / event_list_events / event_get_listener_count、ソースで SkillMode.SemiAuto として指定)はそのまま実行されます。それ以外の変更/呼び出し系(event_add_listener / event_set_listener / event_set_listener_state / event_invoke / event_add_listener_batch / event_copy_listeners、SkillMode.FullAuto として指定)はユーザーの grant が必要です。grant 後、サーバーが一度の処理で実行して結果を返します。
  • Auto / Bypass:禁止リストによりブロックされていないスキルは、そのまま実行されます。
  • このモジュールには削除系スキルが含まれます:event_remove_listener、event_clear_listeners は SkillOperation.Delete として指定され、IsForbiddenInSemi により静的にブロックされます。呼び出せるのは Bypass モード、または Allowlist に追加した場合のみです。
  • event_invoke は Play mode/runtime でのみ有効です。エディターのアイドル状態で実行した場合は、EditorAndRuntime リスナーのみがトリガーされます。event_add_listener などが書き込むのは永続リスナー(prefab/scene にシリアライズされるもの)であり、エディターで設定できます。

してはいけないこと(よくある誤った推測):

  • event_create / event_trigger は存在しません → UnityEvents はコンポーネントのソースコードで宣言されます。このモジュールではリスナーの接続のみを行います
  • event_subscribe は存在しません → event_add_listener を使用してください
  • event_remove は存在しません → event_remove_listener を使用してください
  • event_add_listener には、対象の正確なコンポーネント型とメソッド名が必要です

ルーティング:

  • XR インタラクションイベントには、xr モジュールの xr_add_interaction_event を使用してください
  • C# イベントコードには、script モジュールを使って記述してください

スキル

event_get_listeners

UnityEvent の永続リスナーを取得します。

ParameterTypeRequiredDefaultDescription
namestringいいえnullGameObject 名
instanceIdintいいえ0GameObject のインスタンス ID
pathstringいいえnullGameObject の階層パス
componentNamestringはい-コンポーネント名
eventNamestringはい-イベントフィールド名(例:"onClick")

戻り値: { success, gameObject, component, eventName, listenerCount, listeners }

event_add_listener

UnityEvent に永続リスナーを追加します(エディター実行時)。

ParameterTypeRequiredDefaultDescription
namestringいいえnullGameObject 名
instanceIdintいいえ0GameObject のインスタンス ID
pathstringいいえnullGameObject の階層パス
componentNamestringはい-イベントを所有するコンポーネント
eventNamestringはい-イベントフィールド名(例:"onClick")
targetObjectNamestringはい-呼び出すメソッドを持つ GameObject
targetComponentNamestringいいえnull対象上のコンポーネント、またはオブジェクト自体を呼び出す場合は GameObject
methodNamestringはい-public メソッドまたは set_PropertyName
modestringいいえRuntimeOnlyOff、RuntimeOnly、または EditorAndRuntime
argTypestringいいえvoidvoid、int、float、string、または bool
floatArgfloatいいえ0静的な float 引数
intArgintいいえ0静的な int 引数
stringArgstringいいえnull静的な string 引数
boolArgboolいいえfalse静的な bool 引数

戻り値: { success, message, index, mode }

event_set_listener とは異なり、このスキルには object の argType はありません。標準の UnityEvent オーバーロードのみを使用できます。

event_remove_listener

インデックスを指定して永続リスナーを削除します。

パラメーター型必須デフォルト説明
namestringいいえnullGameObject 名
instanceIdintいいえ0GameObject のインスタンス ID
pathstringいいえnullGameObject の階層パス
componentNamestringはい-コンポーネント名
eventNamestringはい-イベントフィールド名
indexintいいえ0リスナーのインデックス

戻り値: { success, remainingCount }

event_invoke

UnityEvent を明示的に呼び出します(ランタイムのみ)。

パラメーター型必須デフォルト説明
namestringいいえnullGameObject 名
instanceIdintいいえ0GameObject のインスタンス ID
pathstringいいえnullGameObject の階層パス
componentNamestringはい-コンポーネント名
eventNamestringはい-イベントフィールド名

戻り値: { success, message }

event_clear_listeners

UnityEvent からすべての永続リスナーを削除します。

パラメーター型必須デフォルト説明
namestringいいえnullGameObject 名
instanceIdintいいえ0GameObject のインスタンス ID
pathstringいいえnullGameObject の階層パス
componentNamestringはい-コンポーネント名
eventNamestringはい-イベントフィールド名(例:"onClick")

戻り値: { success, removed }

event_set_listener_state

リスナーの呼び出し状態(Off、RuntimeOnly、EditorAndRuntime)を設定します。

パラメーター型必須デフォルト説明
namestringいいえnullGameObject 名
instanceIdintいいえ0GameObject のインスタンス ID
pathstringいいえnullGameObject の階層パス
componentNamestringはい-コンポーネント名
eventNamestringはい-イベントフィールド名
indexintいいえ0リスナーのインデックス
statestringいいえnull呼び出し状態:"Off"、"RuntimeOnly"、または "EditorAndRuntime"

戻り値: { success, index, state }

event_set_listener

指定したインデックスの永続リスナーを置き換えます。

パラメーター型必須デフォルト説明
namestringいいえnullGameObject 名
instanceIdintいいえ0GameObject のインスタンス ID
pathstringいいえnullGameObject の階層パス
componentNamestringはい-ソースコンポーネント名
eventNamestringはい-イベントフィールド名
indexintいいえ0置き換えるリスナーのインデックス
targetNamestringはい-対象 GameObject 名
targetInstanceIdintいいえ0対象 GameObject のインスタンス ID
targetPathstringいいえnull対象の階層パス
targetComponentNamestringいいえnull対象コンポーネント名、または GameObject
methodNamestringはい-パブリックメソッド、または set_PropertyName
modestringいいえRuntimeOnlyOff、RuntimeOnly、または EditorAndRuntime
argTypestringいいえvoidvoid、int、float、string、bool、object
floatArgfloatいいえ0静的な float 引数
intArgintいいえ0静的な int 引数
stringArgstringいいえnull静的な string 引数
boolArgboolいいえfalse静的な bool 引数
objectReferenceNamestringいいえnullシーンオブジェクト引数の名前
objectReferenceInstanceIdstringいいえ0シーンオブジェクト引数のインスタンス ID
objectReferencePathstringいいえnullシーンオブジェクト引数のパス
objectAssetPathstringいいえnullプロジェクトアセット引数のパス
objectTypestringいいえnullオブジェクト引数のオブジェクト/コンポーネント型

戻り値: { success, index, target, targetType, method, state, argType }

event_list_events

コンポーネント上のすべての UnityEvent フィールドを一覧表示します。

パラメーター型必須デフォルト説明
namestringいいえnullGameObject 名
instanceIdintいいえ0GameObject のインスタンス ID
pathstringいいえnullGameObject の階層パス
componentNamestringはい-コンポーネント名

戻り値: { success, component, count, events }

event_add_listener_batch

複数のリスナーを一度に追加します。items:{targetObjectName, targetComponentName, methodName} の JSON 配列です。

パラメーター型必須デフォルト説明
namestringいいえnullGameObject 名
instanceIdintいいえ0GameObject のインスタンス ID
pathstringいいえnullGameObject の階層パス
componentNamestringはい-コンポーネント名
eventNamestringはい-イベントフィールド名
itemsstringはい-{targetObjectName, targetComponentName, methodName} の JSON 配列

戻り値: { success, added, total }

event_copy_listeners

あるイベントのリスナーを別のイベントにコピーします。

パラメーター型必須デフォルト説明
sourceObjectstringはい-コピー元の GameObject 名
sourceComponentstringはい-コピー元のコンポーネント名
sourceEventstringはい-コピー元のイベントフィールド名
targetObjectstringはい-コピー先の GameObject 名
targetComponentstringはい-コピー先のコンポーネント名
targetEventstringはい-コピー先のイベントフィールド名

戻り値: { success, copied }

event_get_listener_count

UnityEvent 上の永続リスナーの数を取得します。

パラメーター型必須デフォルト説明
namestringいいえnullGameObject 名
instanceIdintいいえ0GameObject のインスタンス ID
pathstringいいえnullGameObject の階層パス
componentNamestringはい-コンポーネント名
eventNamestringはい-イベントフィールド名

戻り値: { success, count }


正確なシグネチャ

正確な名前、パラメーター、デフォルト値、戻り値は、このファイルではなく、GET /skills/schema または unity_skills.get_skill_schema() で定義されています。

コメント