【深入AGMaker】脚本片段-发送信号与检测信号

脚本效果

分为两个脚本。
其中之一用来演示如何利用条件:检测信号,来让gd脚本中发生的事情通知到vsz状态机内部。
另一个用来演示如何让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:
	agm_send_signal.connect(Callable(player,"receive_signal"))

func _physics_process(_delta):
	if player.is_on_floor():
		agm_send_signal.emit("on_floor_event",null)
		pass

如何使用动作-发送信号

如果使用的了这个动作,VS状态机会动态注册一个新的信号
然后就可以在gdscript脚本中接受它