From d9bda9daa5682b3f90752e600fc07871e712a2df Mon Sep 17 00:00:00 2001 From: Joywayer Date: Wed, 20 May 2026 18:52:57 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=A2=9E=E5=BC=BA=E5=9C=BA=E6=99=AF?= =?UTF-8?q?=E5=B7=A5=E5=85=B7=EF=BC=8C=E6=B7=BB=E5=8A=A0=E6=A3=80=E6=9F=A5?= =?UTF-8?q?=E7=82=B9=E6=9C=8D=E5=8A=A1=E5=92=8C=E4=B8=BB=E6=91=84=E5=83=8F?= =?UTF-8?q?=E6=9C=BA=E9=9F=B3=E9=A2=91=E7=9B=91=E5=90=AC=E5=99=A8=E5=BC=95?= =?UTF-8?q?=E7=94=A8=EF=BC=8C=E4=BC=98=E5=8C=96=E4=BA=8B=E4=BB=B6=E5=A4=84?= =?UTF-8?q?=E7=90=86=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../_Game/Scripts/Editor/Scene/SceneObjectPlacerTool.cs | 6 ++++++ Assets/_Game/Scripts/Editor/Scene/SceneScaffoldTools.cs | 9 ++++++++- 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/Assets/_Game/Scripts/Editor/Scene/SceneObjectPlacerTool.cs b/Assets/_Game/Scripts/Editor/Scene/SceneObjectPlacerTool.cs index 1184f78..186b04c 100644 --- a/Assets/_Game/Scripts/Editor/Scene/SceneObjectPlacerTool.cs +++ b/Assets/_Game/Scripts/Editor/Scene/SceneObjectPlacerTool.cs @@ -114,6 +114,10 @@ namespace BaseGames.Editor AssignReference(playerController, "_shield", shield, report); AssignReference(playerController, "_wallDetector", wallDetector, report); + // ── 其他组件内部引用 ──────────────────────────────────────────────── + AssignReference(playerCombat, "_weaponManager", weaponManager, report); + AssignReference(springSystem, "_stats", playerStats, report); + // ── 事件频道(可选,缺失时跳过) ─────────────────────────────────── AssignAsset(playerStats, "_onHPChanged", report, false, "EVT_HPChanged"); AssignAsset(playerStats, "_onMaxHPChanged", report, false, "EVT_MaxHPChanged"); @@ -127,6 +131,8 @@ namespace BaseGames.Editor AssignAsset(playerController, "_onPlayerSpawned", report, false, "EVT_PlayerSpawned"); AssignAsset(hurtBox, "_onDamageDealt", report, false, "EVT_DamageDealt"); AssignAsset(hurtBox, "_onHitConfirmed", report, false, "EVT_HitConfirmed"); + AssignAsset(springSystem, "_onEnemyDied", report, false, "EVT_EnemyDied"); + AssignAsset(parrySystem, "_onParrySuccess", report, false, "EVT_ParrySuccess"); // ── Config SO 自动查找(资产存在时自动绑定)────────────────────── Object statsConfig = FindFirstAsset("PLY_PlayerStats"); diff --git a/Assets/_Game/Scripts/Editor/Scene/SceneScaffoldTools.cs b/Assets/_Game/Scripts/Editor/Scene/SceneScaffoldTools.cs index 93bf1ce..198bf10 100644 --- a/Assets/_Game/Scripts/Editor/Scene/SceneScaffoldTools.cs +++ b/Assets/_Game/Scripts/Editor/Scene/SceneScaffoldTools.cs @@ -49,6 +49,7 @@ namespace BaseGames.Editor GameObject gameManagerGo = GetOrCreateChild(services, "GameManager").gameObject; GameObject audioManagerGo = GetOrCreateChild(services, "AudioManager").gameObject; GameObject saveManagerGo = GetOrCreateChild(services, "GameSaveManager").gameObject; + GameObject checkpointServiceGo = GetOrCreateChild(services, "CheckpointService").gameObject; GameServiceRegistrar registrar = GetOrAddComponent(registrarGo); DeathRespawnService deathRespawnService = GetOrAddComponent(deathRespawnGo); @@ -60,6 +61,7 @@ namespace BaseGames.Editor GameManager gameManager = GetOrAddComponent(gameManagerGo); AudioManager audioManager = GetOrAddComponent(audioManagerGo); GameSaveManager gameSaveManager = GetOrAddComponent(saveManagerGo); + CheckpointService checkpointService = GetOrAddComponent(checkpointServiceGo); GameObject inputHolderGo = GetOrCreateChild(input, "InputReaderHolder").gameObject; Object inputReaderAsset = FindFirstAssetByType("InputReader", "InputReaderSO"); @@ -81,7 +83,7 @@ namespace BaseGames.Editor mainCamera.orthographic = false; mainCamera.fieldOfView = 60f; mainCameraGo.tag = "MainCamera"; - GetOrAddComponent(mainCameraGo); + AudioListener mainCameraAudioListener = GetOrAddComponent(mainCameraGo); CinemachineBrain brain = GetOrAddComponent(mainCameraGo); GameObject cameraStateGo = GetOrCreateChild(camera, "CameraStateController").gameObject; @@ -173,6 +175,8 @@ namespace BaseGames.Editor AssignReference(registrar, "_sceneService", sceneService); AssignReference(registrar, "_eventChannelRegistry", registry); AssignReference(registrar, "_saveManager", gameSaveManager); + AssignReference(registrar, "_checkpointService", checkpointService); + AssignReference(registrar, "_primaryListener", mainCameraAudioListener); AssignReference(gameManager, "_settingsManager", settingsManager); AssignAsset(gameManager, "_onPlayerDied", report, true, "EVT_PlayerDied"); @@ -194,9 +198,12 @@ namespace BaseGames.Editor AssignAsset(deathRespawnService, "_onRespawnStarted", report, false, "EVT_RespawnStarted"); AssignAsset(deathRespawnService, "_onRespawnCompleted", report, false, "EVT_RespawnCompleted"); AssignAsset(deathRespawnService, "_onDeathScreenConfirmed", report, true, "EVT_DeathScreenConfirmed"); + AssignAsset(deathRespawnService, "_onSceneLoadRequest", report, false, "EVT_SceneLoadRequest"); AssignAsset(settingsManager, "_defaultSettings", report, false, "SET_GlobalSettings"); + AssignAsset(checkpointService, "_onSceneLoaded", report, false, "EVT_SceneLoaded"); + AssignAsset(audioManager, "_onPlayerDied", report, false, "EVT_PlayerDied"); AssignReference(cameraStateController, "_brain", brain);