BazCallNodeMethodAction
シーンノード(GameObjectではないノードを含む)の任意のメソッドを、最大8つの型指定された引数と共に呼び出します。これは「Invoke Script」の欠けていた半分と考えると良いでしょう。このアクションは名前でメソッドを呼び出すことができますが、引数を渡すことはできません。
これはBaz Node Property Change Actionの兄弟アクションです。前者がノードが「何であるか」を設定するのに対し、こちらはノードが「何をするか」を呼び出します。
私の活動を支援するには、パトロンになることを検討してください。![]()
ダウンロード:
BazCallNodeMethodAction.gd (68.1 KB)
要件
AGMaker 1.3.0以上
インストール
BazCallNodeMethodAction.gd(以下に添付)をダウンロードします。- プロジェクトの
custom_actions/フォルダに配置します。まだこのフォルダが存在しない場合は、プロジェクトのルートに作成してください。 - これだけです。アクションの追加ダイアログのオブジェクト / Objectグループに表示されます。有効化などの追加操作は不要です。
機能
引数付きで「あのノードのこのメソッドを呼び出す」というアクションを提供します。これはネイティブには存在しない機能です。
- 型指定された引数付きで任意のメソッドを呼び出します。 最大8つの引数に対応し、各引数は Int / Float / Bool / Text / Path / Select / Vector2 / Color / Node のいずれかの型を持ちます。
- 引数はどこからでも取得できます。 各引数は独立してソースを選択できます。定数、プロジェクト変数、スイッチ、データベースのセル、他のノードのプロパティ、またはノード自体から取得できます。
- 4つのターゲット指定方法。 シーン内の特定のノードを選択、名前で最初のノードを検索、グループの全メンバーに実行、またはスクリプトを実行中のオブジェクト(またはその子ノード)に呼び出します。
- 実際に有用なメソッドリスト。 「メソッド名」ドロップダウンには、選択されたノードのクラスで実際に呼び出すようなコマンド(
play、move_and_slide、queue_freeなどのビヘイビア)のみが表示され、何百もあるゲッターやプロパティセッターは表示されません。自由入力により任意のメソッドを呼び出すことも可能です。 - 引数の自動入力。 リストからメソッドを選択すると、引数リストのサイズが自動的に調整され、各引数の型がメソッドのシグネチャから自動的に設定されます。値を入力するだけです。
- 配置されたオブジェクトの中身を確認。 「シーンから選択」ではインスタンス化されたサブシーンも追跡するため、配置されたオブジェクトの
AnimationPlayerやSprite2Dに直接ターゲットを指定できます。 - 自己完結型で共有可能。 1つのファイルで、オートロードやプロジェクト設定の追加は不要で、管理すべき余計なものはありません。
使用方法
ステートに追加し、ノードの検索方法を選択してからメソッドを選択します。引数フィールドは自動的に構築されます。
- ターゲット指定 ノード(たち)を見つける方法。
シーンから選択= シーンとそのノードの1つを選択(そのシーンがアクティブな時のみ実行)。ノード名で検索= 実行中のシーンでその名前の最初のノード(*や?のワイルドカード使用可、例:Torch*)。グループ内= 実行中のシーン内のグループの全メンバー。このオブジェクト= このビジュアルスクリプトが実行中のオブジェクト、またはその相対的な子ノード(例: 自身のAnimationPlayer)。オブジェクトが表示されるシーンに関係なく機能します。 - ノードタイプ(ノード名で検索 / グループ内)オプション。メソッドリストを埋めるために使用されるクラス。上部の
すべてのクラスを参照…を選択してエディタの全クラスツリーから選ぶか、任意を選択してメソッドを手動で入力します。 - メソッドソース
リストから選択はクラスのメソッドをドロップダウンに反映します。自分で入力はプレーンテキストフィールドであり、自分で書いたGDScriptのメソッドを呼び出すための唯一の方法です。 - メソッド名 呼び出すメソッド。リストから選択すると、以下の引数のサイズと型が自動的に設定されます。
- 引数カウント 渡す引数の数(0〜8)。各引数には型、ソース、値フィールドが設定されます。
- デバッグ有効 ターゲットなし、メソッド未定義、および正常な呼び出しを出力にプリントします。
例:自分のオブジェクトでアニメーションを再生する場合:ターゲット指定 = このオブジェクト → 子パス AnimationPlayer → メソッド名 = play → 引数1つ、型 Text、ソース 定数、値 walk。これは「Invoke Script」では決して実現できなかった呼び出しです。
例:グループでドアを開ける場合:ターゲット指定 = グループ内 → グループ doors → メソッド名 = open(自分で入力、これは自身のスクリプトメソッドのため)→ シーン内のすべてのドアが同時に開きます。
ヒント
自分で入力でスクリプトメソッドにアクセス。 ドロップダウンにはクラスの組み込みメソッドが表示されますが、自身のGDScriptで書いたメソッドは表示されません。メソッドソースを自分で入力に切り替え、名前を入力してください。freeよりqueue_freeを優先してください。 リストにはqueue_freeしか提案されません。スクリプト実行中にノードを即座に削除するとクラッシュのリスクがあります。キュー版は同じ処理の安全な表記です。- プロパティを変更したい場合は兄弟アクションを使用してください。 望んでいる「メソッド」が実際には
set_something(value)のような場合、Baz Node Property Change Action がよりクリーンなツールです。そのため、プレーンなプロパティセッターはこのドロップダウンから除外されています。 - 引数カウントを減らしても値は失われません。 減らして再度増やすと、以前のエントリーが戻ってきます。
