【AGMaker 深入解説】スクリプト断片:信号の送信と検出

スクリプトの効果

2 つのスクリプトに分かれています。
1 つ目は、条件:信号の検出 を利用して、GD スクリプト内で発生したことを VS 状態機械内部に通知する方法をデモします。
もう 1 つは、VS 状態機械内部で発生した動作:信号の送信 を利用して、GD スクリプト内のロジックがそれに応答する方法をデモします。

ポイント

  1. player は実際のゲームオブジェクトを指す必要があります。
  2. このスニペットは、Godot 原生の is_on_floor メソッドを利用してゲームオブジェクトに応答させる機能の簡易デモです。
  3. ゲームオブジェクト内で 信号の検出 を使用し、ターゲット信号の名前を on_floor_event に変更し、パラメータを「なし」に設定します。
  4. 可視化スクリプトで 信号の送信 動作を使用すると、信号リストに動的に新しい信号が追加され、これを直接使用できます。GD スクリプト内の関数に接続するだけです。

コア

条件-信号の検出の使用方法

extends Node

signal agm_send_signal(signal_name,parameter)

@onready var player: GameObject = $"..""
var was_in_air = false

func _ready() -> void:
\tagm_send_signal.connect(Callable(player,"receive_signal"))

func _physics_process(_delta):
\tif player.is_on_floor():
\t\tagm_send_signal.emit("on_floor_event",null)
\t\tpass

動作-信号の送信の使用方法

この動作を使用すると、VS 状態機械は動的に新しい信号を登録します。
その後、GDScript スクリプトでそれを受け取ることができます。