[AGMaker に挑戦] スクリプトの要点 - EmitSignal と SignalDetected

スクリプト効果

2 つのスクリプトがあります。
1 つ目は、GD スクリプト内で発生するイベントを VS 状態機械に通知するために「条件:SignalDetected」を使用する方法を示しています。
2 つ目は、VS 状態機械内で「アクション:SendSignal」を使用して GD スクリプトのロジックをトリガーする方法を示しています。

重要なポイント

  1. player は実際のゲームオブジェクトを指す必要があります。
  2. このスニペットは、Godot のネイティブな is_on_floor メソッドを使用して、ゲームオブジェクトにレスポンスさせる機能の概要を示しています。
  3. ゲームオブジェクトで「SignalDetected」を使用し、ターゲットシグナル名を on_floor_event に変更し、パラメータは指定しません。
  4. ビジュアルスクリプトで「SendSignal」アクションを使用した後、シグナルリストに動的にシグナルが追加され、そのまま使用できます。これを GD スクリプトの関数に接続します。

コア

条件 - SignalDetected の使用方法

extends Node

signal agm_send_signal(signal_name,parameter)

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

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

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

アクション - SendSignal の使用方法

このアクションを作成すると、VS が動的に新しいシグナルを登録し、GDScript スクリプトでそれを受信できるようになります。