extends Area2D # 场景名称 @export var target_scene_name: String = "" @export var target_position: Vector2 = Vector2.ZERO # 目标场景的生成位置 (Vector2.ZERO 表示不设置) @export var target_spawn_name: String = "" # 目标场景的 Marker2D 名称 (例如 "FromSquare") # Called when the node enters the scene tree for the first time. func _ready() -> void: # 连接 body_entered 信号 body_entered.connect(_on_body_entered) func _on_body_entered(body: Node2D) -> void: # 检查进入对象是否为玩家 if body.has_method("_handle_movement"): _teleport_player() func _teleport_player() -> void: if target_scene_name == "": push_error("DoorTeleport: target_scene_name 为空") return # 设置参数 if target_spawn_name != "": SceneManager.set_next_spawn_name(target_spawn_name) elif target_position != Vector2.ZERO: SceneManager.set_next_scene_position(target_position) SceneManager.change_scene(target_scene_name)