相机follow的配置更新
This commit is contained in:
parent
54936007b9
commit
94bcf60a6d
|
|
@ -1,8 +1,8 @@
|
||||||
extends Node2D
|
extends Node2D
|
||||||
|
|
||||||
func _ready() -> void:
|
func _ready() -> void:
|
||||||
#$L0_S0.switch_act_by_id(1)
|
$L0_S0.switch_act_by_id(1)
|
||||||
$L1_S1.switch_act_by_id(1)
|
#$L1_S1.switch_act_by_id(1)
|
||||||
#$L1_S2.switch_act_by_id(1)
|
#$L1_S2.switch_act_by_id(1)
|
||||||
#$L1_S3.switch_act_by_id(1)
|
#$L1_S3.switch_act_by_id(1)
|
||||||
#$L1_S4.switch_act_by_id(1)
|
#$L1_S4.switch_act_by_id(1)
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
extends SceneGuard
|
||||||
|
|
||||||
|
##如果为-1,则不检查from_id,只检查to id
|
||||||
|
@export var from_id: int = -1
|
||||||
|
##如果为-1,不检查,如果不为-1,则如果act manager的act changed的to act是此id,此guard通过。
|
||||||
|
@export var to_id: int = -1
|
||||||
|
|
||||||
|
func check(signal_args: Array) -> bool:
|
||||||
|
if to_id < 0:
|
||||||
|
return true
|
||||||
|
|
||||||
|
var has_from : bool = false
|
||||||
|
if from_id >= 0:
|
||||||
|
has_from = true
|
||||||
|
|
||||||
|
if has_from:
|
||||||
|
if signal_args[0] == from_id and signal_args[1] == to_id:
|
||||||
|
return true
|
||||||
|
else:
|
||||||
|
if signal_args[1] == to_id:
|
||||||
|
return true
|
||||||
|
|
||||||
|
return false
|
||||||
|
|
@ -0,0 +1 @@
|
||||||
|
uid://dhs40v68rpfxr
|
||||||
|
|
@ -0,0 +1,7 @@
|
||||||
|
[gd_resource type="Resource" load_steps=2 format=3 uid="uid://c7gm32jjs8wop"]
|
||||||
|
|
||||||
|
[ext_resource type="Script" uid="uid://dhs40v68rpfxr" path="res://_scene/guard/ActIDChanged/Guard_ActIDChangedCheck.gd" id="1_ae5sw"]
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
script = ExtResource("1_ae5sw")
|
||||||
|
to_id = 1
|
||||||
|
|
@ -1,15 +1,21 @@
|
||||||
[gd_scene load_steps=39 format=4 uid="uid://sursemsbf1lg"]
|
[gd_scene load_steps=50 format=4 uid="uid://sursemsbf1lg"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://5e157vdk6175" path="res://addons/reedscene/scene/ReedScene.gd" id="1_oyljl"]
|
[ext_resource type="Script" uid="uid://5e157vdk6175" path="res://addons/reedscene/scene/ReedScene.gd" id="1_oyljl"]
|
||||||
[ext_resource type="Script" uid="uid://bh066o84byplh" path="res://addons/reedscene/scene/ReedSceneID.gd" id="2_ggwu1"]
|
[ext_resource type="Script" uid="uid://bh066o84byplh" path="res://addons/reedscene/scene/ReedSceneID.gd" id="2_ggwu1"]
|
||||||
[ext_resource type="Script" uid="uid://dn0ksjoswquf5" path="res://addons/reedscene/scene/SceneManager.gd" id="3_7btev"]
|
[ext_resource type="Script" uid="uid://dn0ksjoswquf5" path="res://addons/reedscene/scene/SceneManager.gd" id="3_7btev"]
|
||||||
[ext_resource type="Script" uid="uid://ons77en82uls" path="res://addons/reedscene/scene/scene_trigger/base/SceneTrigger.gd" id="4_pkqns"]
|
[ext_resource type="Script" uid="uid://ons77en82uls" path="res://addons/reedscene/scene/scene_trigger/base/SceneTrigger.gd" id="4_pkqns"]
|
||||||
[ext_resource type="Resource" uid="uid://bym4pb0ellj7b" path="res://_scene/scene_trigger_resource/default_switch.tres" id="5_wiv8n"]
|
[ext_resource type="Resource" uid="uid://bym4pb0ellj7b" path="res://_scene/scene_trigger_resource/default_switch.tres" id="5_wiv8n"]
|
||||||
|
[ext_resource type="Resource" uid="uid://c7gm32jjs8wop" path="res://_scene/guard/ActIDChanged/Guard_ActIDChangedCheck.tres" id="6_j5iwd"]
|
||||||
|
[ext_resource type="Script" uid="uid://dxj5vimigc651" path="res://addons/reedscene/scene/scene_trigger/base/SceneTriggerEffectPair.gd" id="7_0m4o0"]
|
||||||
[ext_resource type="Script" uid="uid://dsgl7lbyjsiif" path="res://addons/reedscene/act/ActManager.gd" id="7_mu7ca"]
|
[ext_resource type="Script" uid="uid://dsgl7lbyjsiif" path="res://addons/reedscene/act/ActManager.gd" id="7_mu7ca"]
|
||||||
[ext_resource type="Script" uid="uid://fxpk2ot6otfh" path="res://addons/reedscene/act/Act.gd" id="8_0m4o0"]
|
[ext_resource type="Script" uid="uid://fxpk2ot6otfh" path="res://addons/reedscene/act/Act.gd" id="8_0m4o0"]
|
||||||
|
[ext_resource type="Script" uid="uid://b1bgmb71bapws" path="res://addons/reedscene/scene/scene_trigger/base/SceneTriggerEffect.gd" id="8_1oohu"]
|
||||||
[ext_resource type="Script" uid="uid://baqgorvlumyju" path="res://addons/reedscene/act/SingleAct.gd" id="9_1oohu"]
|
[ext_resource type="Script" uid="uid://baqgorvlumyju" path="res://addons/reedscene/act/SingleAct.gd" id="9_1oohu"]
|
||||||
|
[ext_resource type="Script" uid="uid://bjstkg23cq6vq" path="res://addons/reedscene/scene/scene_trigger/STE_SwitchAct.gd" id="9_g4f48"]
|
||||||
[ext_resource type="Script" uid="uid://pxjf5vst08eo" path="res://addons/reedscene/prop/PropManager.gd" id="10_g4f48"]
|
[ext_resource type="Script" uid="uid://pxjf5vst08eo" path="res://addons/reedscene/prop/PropManager.gd" id="10_g4f48"]
|
||||||
|
[ext_resource type="Script" uid="uid://cwxwsfl1mx7kc" path="res://addons/reedscene/scene/scene_trigger/STT_Autoload.gd" id="10_o5yb1"]
|
||||||
[ext_resource type="PackedScene" uid="uid://bflwr7cryd2l0" path="res://_camera/CameraAnchor.tscn" id="11_o5yb1"]
|
[ext_resource type="PackedScene" uid="uid://bflwr7cryd2l0" path="res://_camera/CameraAnchor.tscn" id="11_o5yb1"]
|
||||||
|
[ext_resource type="Script" uid="uid://cdprpen0jyr6d" path="res://addons/reedscene/scene/scene_trigger/STR_NodePath.gd" id="11_vhd7q"]
|
||||||
[ext_resource type="Script" uid="uid://b4menkyub4ce7" path="res://addons/reedscene/prop/PropComponent.gd" id="12_vhd7q"]
|
[ext_resource type="Script" uid="uid://b4menkyub4ce7" path="res://addons/reedscene/prop/PropComponent.gd" id="12_vhd7q"]
|
||||||
[ext_resource type="Script" uid="uid://di41kt2tj34c2" path="res://addons/reedscene/prop/StateManager.gd" id="13_5fsuc"]
|
[ext_resource type="Script" uid="uid://di41kt2tj34c2" path="res://addons/reedscene/prop/StateManager.gd" id="13_5fsuc"]
|
||||||
[ext_resource type="Script" uid="uid://7lml6d1t5xtq" path="res://addons/reedscene/prop/PropState.gd" id="14_rxcsc"]
|
[ext_resource type="Script" uid="uid://7lml6d1t5xtq" path="res://addons/reedscene/prop/PropState.gd" id="14_rxcsc"]
|
||||||
|
|
@ -24,6 +30,35 @@
|
||||||
[ext_resource type="Script" uid="uid://8cqs3i8sr8b1" path="res://addons/reedscene/prop/Effect/ETT_Owner.gd" id="23_5h6d2"]
|
[ext_resource type="Script" uid="uid://8cqs3i8sr8b1" path="res://addons/reedscene/prop/Effect/ETT_Owner.gd" id="23_5h6d2"]
|
||||||
[ext_resource type="TileSet" uid="uid://doepkfp83k0lb" path="res://_tileset/test.tres" id="24_uiy5k"]
|
[ext_resource type="TileSet" uid="uid://doepkfp83k0lb" path="res://_tileset/test.tres" id="24_uiy5k"]
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_5fsuc"]
|
||||||
|
script = ExtResource("9_g4f48")
|
||||||
|
func_name = &"player_follow_camera"
|
||||||
|
metadata/_custom_type_script = "uid://bjstkg23cq6vq"
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_rxcsc"]
|
||||||
|
script = ExtResource("10_o5yb1")
|
||||||
|
autoload_name = &"GlobalEvent"
|
||||||
|
metadata/_custom_type_script = "uid://cwxwsfl1mx7kc"
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_xtmay"]
|
||||||
|
script = ExtResource("7_0m4o0")
|
||||||
|
target = SubResource("Resource_rxcsc")
|
||||||
|
effect = Array[ExtResource("8_1oohu")]([SubResource("Resource_5fsuc")])
|
||||||
|
metadata/_custom_type_script = "uid://dxj5vimigc651"
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_vjg7j"]
|
||||||
|
script = ExtResource("11_vhd7q")
|
||||||
|
node_path = NodePath("../ActManager")
|
||||||
|
monitor_signal = &"act_changed"
|
||||||
|
metadata/_custom_type_script = "uid://cdprpen0jyr6d"
|
||||||
|
|
||||||
|
[sub_resource type="Resource" id="Resource_j2lfw"]
|
||||||
|
script = ExtResource("4_pkqns")
|
||||||
|
trigger_register_conifg = SubResource("Resource_vjg7j")
|
||||||
|
guard = ExtResource("6_j5iwd")
|
||||||
|
trigger_effect_pairs = Array[ExtResource("7_0m4o0")]([SubResource("Resource_xtmay")])
|
||||||
|
metadata/_custom_type_script = "uid://ons77en82uls"
|
||||||
|
|
||||||
[sub_resource type="Resource" id="Resource_hd3du"]
|
[sub_resource type="Resource" id="Resource_hd3du"]
|
||||||
script = ExtResource("9_1oohu")
|
script = ExtResource("9_1oohu")
|
||||||
|
|
||||||
|
|
@ -104,7 +139,7 @@ script = ExtResource("2_ggwu1")
|
||||||
|
|
||||||
[node name="SceneManager" type="Node" parent="."]
|
[node name="SceneManager" type="Node" parent="."]
|
||||||
script = ExtResource("3_7btev")
|
script = ExtResource("3_7btev")
|
||||||
quick_trigger = Array[ExtResource("4_pkqns")]([ExtResource("5_wiv8n")])
|
quick_trigger = Array[ExtResource("4_pkqns")]([ExtResource("5_wiv8n"), SubResource("Resource_j2lfw")])
|
||||||
|
|
||||||
[node name="ActManager" type="Node" parent="."]
|
[node name="ActManager" type="Node" parent="."]
|
||||||
script = ExtResource("7_mu7ca")
|
script = ExtResource("7_mu7ca")
|
||||||
|
|
|
||||||
File diff suppressed because one or more lines are too long
|
|
@ -1,6 +1,5 @@
|
||||||
[gd_resource type="Resource" script_class="SceneTrigger" load_steps=20 format=3 uid="uid://bym4pb0ellj7b"]
|
[gd_resource type="Resource" script_class="SceneTrigger" load_steps=19 format=3 uid="uid://bym4pb0ellj7b"]
|
||||||
|
|
||||||
[ext_resource type="Script" uid="uid://baamspwt4rm4r" path="res://addons/reedscene/scene/guard.gd" id="1_ebfhi"]
|
|
||||||
[ext_resource type="Script" uid="uid://ons77en82uls" path="res://addons/reedscene/scene/scene_trigger/base/SceneTrigger.gd" id="2_cq8o1"]
|
[ext_resource type="Script" uid="uid://ons77en82uls" path="res://addons/reedscene/scene/scene_trigger/base/SceneTrigger.gd" id="2_cq8o1"]
|
||||||
[ext_resource type="Script" uid="uid://dxj5vimigc651" path="res://addons/reedscene/scene/scene_trigger/base/SceneTriggerEffectPair.gd" id="3_m0qh3"]
|
[ext_resource type="Script" uid="uid://dxj5vimigc651" path="res://addons/reedscene/scene/scene_trigger/base/SceneTriggerEffectPair.gd" id="3_m0qh3"]
|
||||||
[ext_resource type="Script" uid="uid://b1bgmb71bapws" path="res://addons/reedscene/scene/scene_trigger/base/SceneTriggerEffect.gd" id="4_g7ixm"]
|
[ext_resource type="Script" uid="uid://b1bgmb71bapws" path="res://addons/reedscene/scene/scene_trigger/base/SceneTriggerEffect.gd" id="4_g7ixm"]
|
||||||
|
|
|
||||||
|
|
@ -35,26 +35,21 @@ func get_player_controller() -> PlayerController:
|
||||||
return _cached_player_controller
|
return _cached_player_controller
|
||||||
|
|
||||||
func player_follow_camera() -> void:
|
func player_follow_camera() -> void:
|
||||||
if not _cached_player:return
|
|
||||||
|
|
||||||
var cam := ReedCameraSystem.get_current_camera_pointer() as CameraPointer
|
var cam := ReedCameraSystem.get_current_camera_pointer() as CameraPointer
|
||||||
if not cam:return
|
if not cam:return
|
||||||
|
|
||||||
var follower := cam.get_tool_by_type(CameraPointer.ToolType.FOLLOWER)
|
var follower := cam.get_tool_by_type(CameraPointer.ToolType.FOLLOWER)
|
||||||
if not follower:return
|
if not follower:return
|
||||||
|
|
||||||
follower.register_follower(_cached_player)
|
|
||||||
_camera_follower = follower
|
_camera_follower = follower
|
||||||
|
|
||||||
|
if not _cached_player:return
|
||||||
|
follower.register_follower(_cached_player)
|
||||||
|
|
||||||
func player_unfollow_camera() -> void:
|
func player_unfollow_camera() -> void:
|
||||||
var cam := ReedCameraSystem.get_current_camera_pointer() as CameraPointer
|
if _camera_follower:
|
||||||
if not cam:return
|
_camera_follower.unregister_follower()
|
||||||
|
_camera_follower = null
|
||||||
var follower := cam.get_tool_by_type(CameraPointer.ToolType.FOLLOWER)
|
|
||||||
if not follower:return
|
|
||||||
|
|
||||||
follower.unregister_follower()
|
|
||||||
_camera_follower = null
|
|
||||||
|
|
||||||
## 外部用于监听Player死亡
|
## 外部用于监听Player死亡
|
||||||
func boradcast_player_dead_event(player:Player) -> void:
|
func boradcast_player_dead_event(player:Player) -> void:
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,79 @@
|
||||||
|
[gd_resource type="TileSet" load_steps=3 format=3 uid="uid://cup1q1upvp18h"]
|
||||||
|
|
||||||
|
[ext_resource type="Texture2D" uid="uid://cew1x7g5aaa3j" path="res://_asset/ksw/basicTile.png" id="1_ln1fl"]
|
||||||
|
|
||||||
|
[sub_resource type="TileSetAtlasSource" id="TileSetAtlasSource_ln1fl"]
|
||||||
|
texture = ExtResource("1_ln1fl")
|
||||||
|
texture_region_size = Vector2i(96, 96)
|
||||||
|
1:1/0 = 0
|
||||||
|
2:1/0 = 0
|
||||||
|
2:2/0 = 0
|
||||||
|
3:2/0 = 0
|
||||||
|
3:3/0 = 0
|
||||||
|
3:1/0 = 0
|
||||||
|
1:2/0 = 0
|
||||||
|
1:3/0 = 0
|
||||||
|
2:3/0 = 0
|
||||||
|
6:1/0 = 0
|
||||||
|
7:1/0 = 0
|
||||||
|
8:1/0 = 0
|
||||||
|
8:2/0 = 0
|
||||||
|
8:3/0 = 0
|
||||||
|
7:3/0 = 0
|
||||||
|
6:3/0 = 0
|
||||||
|
6:2/0 = 0
|
||||||
|
7:2/0 = 0
|
||||||
|
10:1/0 = 0
|
||||||
|
11:1/0 = 0
|
||||||
|
12:1/0 = 0
|
||||||
|
9:5/0 = 0
|
||||||
|
10:6/0 = 0
|
||||||
|
11:5/0 = 0
|
||||||
|
10:5/0 = 0
|
||||||
|
9:6/0 = 0
|
||||||
|
11:6/0 = 0
|
||||||
|
7:5/0 = 0
|
||||||
|
7:6/0 = 0
|
||||||
|
6:6/0 = 0
|
||||||
|
6:5/0 = 0
|
||||||
|
3:5/0 = 0
|
||||||
|
3:6/0 = 0
|
||||||
|
4:6/0 = 0
|
||||||
|
4:5/0 = 0
|
||||||
|
1:5/0 = 0
|
||||||
|
1:6/0 = 0
|
||||||
|
1:7/0 = 0
|
||||||
|
1:9/0 = 0
|
||||||
|
1:10/0 = 0
|
||||||
|
2:10/0 = 0
|
||||||
|
2:9/0 = 0
|
||||||
|
1:8/0 = 0
|
||||||
|
4:9/0 = 0
|
||||||
|
4:10/0 = 0
|
||||||
|
5:10/0 = 0
|
||||||
|
5:9/0 = 0
|
||||||
|
5:8/0 = 0
|
||||||
|
7:8/0 = 0
|
||||||
|
8:8/0 = 0
|
||||||
|
8:9/0 = 0
|
||||||
|
8:10/0 = 0
|
||||||
|
7:9/0 = 0
|
||||||
|
6:9/0 = 0
|
||||||
|
10:9/0 = 0
|
||||||
|
11:9/0 = 0
|
||||||
|
11:10/0 = 0
|
||||||
|
10:10/0 = 0
|
||||||
|
9:9/0 = 0
|
||||||
|
9:10/0 = 0
|
||||||
|
10:8/0 = 0
|
||||||
|
11:8/0 = 0
|
||||||
|
8:5/0 = 0
|
||||||
|
9:4/0 = 0
|
||||||
|
11:4/0 = 0
|
||||||
|
7:4/0 = 0
|
||||||
|
3:4/0 = 0
|
||||||
|
1:4/0 = 0
|
||||||
|
|
||||||
|
[resource]
|
||||||
|
tile_size = Vector2i(96, 96)
|
||||||
|
sources/0 = SubResource("TileSetAtlasSource_ln1fl")
|
||||||
Binary file not shown.
|
|
@ -11,6 +11,10 @@ const _DEBUG_TOOL := preload("res://addons/reedcamera/scripts/camera_tools/DeadZ
|
||||||
@export var enabled_follow: bool = true
|
@export var enabled_follow: bool = true
|
||||||
@export var follow_speed: float = 600.0 # 世界单位 / 秒
|
@export var follow_speed: float = 600.0 # 世界单位 / 秒
|
||||||
@export var follow_lerp := 0.12 # 0~1,越大越“跟手”,越小越“蔚蓝感”的滞后
|
@export var follow_lerp := 0.12 # 0~1,越大越“跟手”,越小越“蔚蓝感”的滞后
|
||||||
|
@export_subgroup("Follow Dynamic Speed")
|
||||||
|
@export var min_speed_scale := 0.4 # 贴近死区时
|
||||||
|
@export var max_speed_scale := 2.0 # 远离死区时
|
||||||
|
@export var max_offset_ratio := 1.0 # offset 达到 1 个 dead_zone 时为最大速率
|
||||||
|
|
||||||
##TODO:后续添加一下Runtime的修改逻辑
|
##TODO:后续添加一下Runtime的修改逻辑
|
||||||
@export_group("Debug")
|
@export_group("Debug")
|
||||||
|
|
@ -110,9 +114,20 @@ func update_follow(delta: float) -> void:
|
||||||
_current_state = State.CHASING
|
_current_state = State.CHASING
|
||||||
|
|
||||||
|
|
||||||
|
#var move_dir := offset.normalized()
|
||||||
|
#var world_velocity := (move_dir * follow_speed) / cam.zoom
|
||||||
|
|
||||||
|
var offset_len := offset.length()
|
||||||
|
var dead_len := dead_half.length()
|
||||||
|
|
||||||
|
# 0~1 的距离比例
|
||||||
|
var t := clamp(offset_len / (dead_len * max_offset_ratio), 0.0, 1.0)
|
||||||
|
|
||||||
|
# 距离越远,速度越快
|
||||||
|
var speed_scale := lerp(min_speed_scale, max_speed_scale, t)
|
||||||
|
|
||||||
var move_dir := offset.normalized()
|
var move_dir := offset.normalized()
|
||||||
var world_velocity := (move_dir * follow_speed) / cam.zoom
|
var world_velocity : Vector2 = (move_dir * follow_speed * speed_scale) / cam.zoom
|
||||||
##如果存在move_dir,则我们认为相机需要chasing player
|
|
||||||
|
|
||||||
var desired_pos := _final_position + world_velocity * delta
|
var desired_pos := _final_position + world_velocity * delta
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -54,48 +54,6 @@ func _bind_quick_trigger() -> void:
|
||||||
func(...args):
|
func(...args):
|
||||||
_on_trigger_fired(st, args)
|
_on_trigger_fired(st, args)
|
||||||
)
|
)
|
||||||
#if qt is PropIDSceneTrigger:
|
|
||||||
#_bind_prop_id_trigger(qt)
|
|
||||||
#elif qt is NodePathSceneTrigger:
|
|
||||||
#_bind_node_path_trigger(qt)
|
|
||||||
|
|
||||||
### 通过Prop id来绑定signal
|
|
||||||
#func _bind_prop_id_trigger(trigger: PropIDSceneTrigger) -> void:
|
|
||||||
#var prop : Node = _props.get(trigger.prop_id).get_parent()
|
|
||||||
#if prop == null:
|
|
||||||
#return
|
|
||||||
#
|
|
||||||
#var s: StringName = trigger.monitor_signal
|
|
||||||
#if not prop.has_signal(s):
|
|
||||||
#push_error("Prop has no signal: %s" % trigger.monitor_signal)
|
|
||||||
#return
|
|
||||||
#
|
|
||||||
#prop.connect(
|
|
||||||
#trigger.monitor_signal,
|
|
||||||
#func(...args):
|
|
||||||
#_on_trigger_fired(trigger, args)
|
|
||||||
#)
|
|
||||||
#
|
|
||||||
### 通过NodePath来绑定signal
|
|
||||||
#func _bind_node_path_trigger(trigger: NodePathSceneTrigger) -> void:
|
|
||||||
#if trigger.path.is_empty():
|
|
||||||
#return
|
|
||||||
#
|
|
||||||
#var n : Node = self.get_node_or_null(trigger.path)
|
|
||||||
#
|
|
||||||
#if n == null:
|
|
||||||
#return
|
|
||||||
#
|
|
||||||
#var s: StringName = trigger.monitor_signal
|
|
||||||
#if not n.has_signal(s):
|
|
||||||
#push_error("Prop has no signal: %s" % trigger.monitor_signal)
|
|
||||||
#return
|
|
||||||
#
|
|
||||||
#n.connect(
|
|
||||||
#trigger.monitor_signal,
|
|
||||||
#func(...args):
|
|
||||||
#_on_trigger_fired(trigger, args)
|
|
||||||
#)
|
|
||||||
|
|
||||||
## 当信号触发
|
## 当信号触发
|
||||||
func _on_trigger_fired(trigger: SceneTrigger, signal_args: Array) -> void:
|
func _on_trigger_fired(trigger: SceneTrigger, signal_args: Array) -> void:
|
||||||
|
|
@ -115,13 +73,6 @@ func _on_trigger_fired(trigger: SceneTrigger, signal_args: Array) -> void:
|
||||||
for j in exs:
|
for j in exs:
|
||||||
var ex := j as SceneTriggerEffect
|
var ex := j as SceneTriggerEffect
|
||||||
ex.apply_effect(t)
|
ex.apply_effect(t)
|
||||||
#var target_act_id: int = trigger.target_act_id
|
|
||||||
#var trans_overwrite: int = trigger.trans_overwrite
|
|
||||||
#
|
|
||||||
#if target_act_id < 0:
|
|
||||||
#return
|
|
||||||
#
|
|
||||||
#_act_manager.switch_act_with_id(target_act_id,trans_overwrite)
|
|
||||||
|
|
||||||
func switch_act_with_id(id: int,trans_overwrite:int = 0) -> void:
|
func switch_act_with_id(id: int,trans_overwrite:int = 0) -> void:
|
||||||
_act_manager.switch_act_with_id(id,trans_overwrite)
|
_act_manager.switch_act_with_id(id,trans_overwrite)
|
||||||
|
|
|
||||||
|
|
@ -3,15 +3,13 @@ class_name SceneTrigger extends Resource
|
||||||
##绑定哪个Node的哪个函数作为此Trigger的Register。
|
##绑定哪个Node的哪个函数作为此Trigger的Register。
|
||||||
@export var trigger_register_conifg: SceneTriggerRegister
|
@export var trigger_register_conifg: SceneTriggerRegister
|
||||||
##Guard是一个保护项,如果某个Trigger触发后但因为某些条件并不想被执行,可以使用guard进行保护
|
##Guard是一个保护项,如果某个Trigger触发后但因为某些条件并不想被执行,可以使用guard进行保护
|
||||||
@export var guards: Array[SceneGuard]
|
@export var guard: SceneGuard
|
||||||
##当某个Trigger被激活时,可以应用任意多个Effect,Effect会按序执行列
|
##当某个Trigger被激活时,可以应用任意多个Effect,Effect会按序执行列
|
||||||
@export var trigger_effect_pairs: Array[SceneTriggerEffectPair]
|
@export var trigger_effect_pairs: Array[SceneTriggerEffectPair]
|
||||||
|
|
||||||
var _owner: Node
|
var _owner: Node
|
||||||
|
|
||||||
func can_trigger(args: Array) -> bool:
|
func can_trigger(args: Array) -> bool:
|
||||||
for g in guards:
|
if not guard.check(args):
|
||||||
if not g.check(args):
|
return false
|
||||||
return false
|
|
||||||
|
|
||||||
return true
|
return true
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue