脚本效果
分为两个脚本。
其中之一用来演示如何利用条件:检测信号
,来让gd脚本中发生的事情通知到vsz状态机内部。
另一个用来演示如何让vs状态机内部发生的动作:发送信号
,来让gd脚本中的逻辑去响应它。
要点
player
需要指向你真实的游戏对象- 这个片段简短演示了利用Godot原生
is_on_floor
方法来通知游戏对象做出响应的功能 - 在游戏对象中使用
检测信号
并将目标信号的名字改为on_floor_event
,参数设置为无即可。 - 当在可视化脚本中使用过
发送信号
动作后,信号列表中会动态添加一个信号,这个信号是可以直接使用的。连接到某个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脚本中接受它