feat: 增强场景工具,添加检查点服务和主摄像机音频监听器引用,优化事件处理逻辑
This commit is contained in:
@@ -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");
|
||||
|
||||
@@ -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<GameServiceRegistrar>(registrarGo);
|
||||
DeathRespawnService deathRespawnService = GetOrAddComponent<DeathRespawnService>(deathRespawnGo);
|
||||
@@ -60,6 +61,7 @@ namespace BaseGames.Editor
|
||||
GameManager gameManager = GetOrAddComponent<GameManager>(gameManagerGo);
|
||||
AudioManager audioManager = GetOrAddComponent<AudioManager>(audioManagerGo);
|
||||
GameSaveManager gameSaveManager = GetOrAddComponent<GameSaveManager>(saveManagerGo);
|
||||
CheckpointService checkpointService = GetOrAddComponent<CheckpointService>(checkpointServiceGo);
|
||||
|
||||
GameObject inputHolderGo = GetOrCreateChild(input, "InputReaderHolder").gameObject;
|
||||
Object inputReaderAsset = FindFirstAssetByType<InputReaderSO>("InputReader", "InputReaderSO");
|
||||
@@ -81,7 +83,7 @@ namespace BaseGames.Editor
|
||||
mainCamera.orthographic = false;
|
||||
mainCamera.fieldOfView = 60f;
|
||||
mainCameraGo.tag = "MainCamera";
|
||||
GetOrAddComponent<AudioListener>(mainCameraGo);
|
||||
AudioListener mainCameraAudioListener = GetOrAddComponent<AudioListener>(mainCameraGo);
|
||||
CinemachineBrain brain = GetOrAddComponent<CinemachineBrain>(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);
|
||||
|
||||
Reference in New Issue
Block a user