2026-01-11 15:26:00 +08:00
|
|
|
|
class_name SceneTrigger extends Resource
|
|
|
|
|
|
|
|
|
|
|
|
##绑定哪个Node的哪个函数作为此Trigger的Register。
|
|
|
|
|
|
@export var trigger_register_conifg: SceneTriggerRegister
|
|
|
|
|
|
##Guard是一个保护项,如果某个Trigger触发后但因为某些条件并不想被执行,可以使用guard进行保护
|
2026-01-13 22:42:41 +08:00
|
|
|
|
@export var guard: SceneGuard
|
2026-01-11 15:26:00 +08:00
|
|
|
|
##当某个Trigger被激活时,可以应用任意多个Effect,Effect会按序执行列
|
|
|
|
|
|
@export var trigger_effect_pairs: Array[SceneTriggerEffectPair]
|
|
|
|
|
|
|
|
|
|
|
|
var _owner: Node
|
|
|
|
|
|
|
2026-01-14 19:39:23 +08:00
|
|
|
|
func can_trigger(args: Array,scene_manager: SceneManager) -> bool:
|
|
|
|
|
|
if not guard:
|
|
|
|
|
|
return true
|
|
|
|
|
|
|
|
|
|
|
|
if not guard.check(args, scene_manager):
|
2026-01-13 22:42:41 +08:00
|
|
|
|
return false
|
2026-01-11 15:26:00 +08:00
|
|
|
|
return true
|