From 80b6134412c8e93e20f95e320a9b50be112e98c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=99=A8=E8=90=BD=E5=9F=BA=E5=9B=B4=E8=99=BE?= <3161880837@qq.com> Date: Sun, 14 Dec 2025 14:51:13 +0800 Subject: [PATCH] =?UTF-8?q?refactor(ItemDropped):=20=E4=BF=AE=E6=94=B9refi?= =?UTF-8?q?ndPlayer=E6=96=B9=E6=B3=95=E4=BB=A5=E6=8E=A5=E6=94=B6SceneTree?= =?UTF-8?q?=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 将refindPlayer方法改为接收SceneTree参数,避免在方法内部重复调用get_tree()。同时更新相关调用点和generate方法,确保一致性。 --- scripts/Statemachine/ItemDropped.gd | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/scripts/Statemachine/ItemDropped.gd b/scripts/Statemachine/ItemDropped.gd index 730a2d2..b1a3143 100644 --- a/scripts/Statemachine/ItemDropped.gd +++ b/scripts/Statemachine/ItemDropped.gd @@ -36,9 +36,9 @@ func _physics_process(_delta): targetPlayer.collectItem(item, stackCount) collect() else: - refindPlayer() + refindPlayer(get_tree()) else: - refindPlayer() + refindPlayer(get_tree()) func canICollect(): return is_instance_valid(targetPlayer) && targetPlayer.inventoryMax[item] > targetPlayer.inventory[item] @@ -47,8 +47,8 @@ func collect(): animator.play("collect") await animator.animation_finished queue_free() -func refindPlayer(): - targetPlayer = EntityTool.findClosetPlayer(position, get_tree()) +func refindPlayer(tree: SceneTree): + targetPlayer = EntityTool.findClosetPlayer(position, tree) static func generate( itemType: ItemStore.ItemType, @@ -63,6 +63,7 @@ static func generate( if addToWorld: WorldManager.rootNode.call_deferred("add_child", instance) instance.add_to_group("drops") + instance.refindPlayer(WorldManager.tree) return instance static func getDrops() -> Array[ItemDropped]: var result: Array[ItemDropped] = []