From 59732d254238eb6dbbd1a10393fb1bf2f7a622a9 Mon Sep 17 00:00:00 2001 From: tian <11429339@qq.com> Date: Fri, 12 Jun 2026 16:08:18 +0800 Subject: [PATCH] =?UTF-8?q?ScenarioManager.Awake=E5=8A=A0try-catch?= =?UTF-8?q?=E5=AE=9A=E4=BD=8D=E6=A0=B9=E5=9B=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Scripts/Managers/ManagerVerification.cs | 5 ---- .../Scripts/Managers/ScenarioManager.cs | 25 ++++++++++++------- 2 files changed, 16 insertions(+), 14 deletions(-) diff --git a/src/Unity/Assets/Scripts/Managers/ManagerVerification.cs b/src/Unity/Assets/Scripts/Managers/ManagerVerification.cs index dd6bd9b..209b63e 100644 --- a/src/Unity/Assets/Scripts/Managers/ManagerVerification.cs +++ b/src/Unity/Assets/Scripts/Managers/ManagerVerification.cs @@ -23,11 +23,9 @@ namespace CounterDrone.Unity System.IO.Directory.Delete(paths.GetFramesDir(), true); var modelMgr = gameObject.AddComponent(); - modelMgr.SendMessage("Awake", SendMessageOptions.DontRequireReceiver); Debug.Log("1. ModelManager OK"); var scenarioMgr = gameObject.AddComponent(); - scenarioMgr.SendMessage("Awake", SendMessageOptions.DontRequireReceiver); var task = scenarioMgr.CreateTask("Verification", ""); var taskId = task.Id; Debug.Log($"2. ScenarioManager OK. Task: {taskId}"); @@ -73,7 +71,6 @@ namespace CounterDrone.Unity Debug.Log($"4. Recommendation: {rec.Best.RecommendedAerosolType}, {rec.Best.Platforms.Count} guns, prob={rec.Best.InterceptProbability:P0}"); var runner = gameObject.AddComponent(); - runner.SendMessage("Awake", SendMessageOptions.DontRequireReceiver); runner.LoadAndStart(taskId); runner.Engine.TimeScale = 10f; @@ -87,7 +84,6 @@ namespace CounterDrone.Unity Debug.Log($"5. Simulation done. State={runner.Engine.State}, DroneStatus={runner.Engine.Drones[0].Status}, HP={runner.Engine.Drones[0].Hp:F2}, Frames={frameCount}"); var reportMgr = gameObject.AddComponent(); - reportMgr.SendMessage("Awake", SendMessageOptions.DontRequireReceiver); detail = scenarioMgr.GetDetail(taskId); var simEvents = new List(runner.Engine.Events); var report = reportMgr.Generate(taskId, detail, simEvents, @@ -96,7 +92,6 @@ namespace CounterDrone.Unity Debug.Log($"6. Report OK. Exported: {path}"); var replay = gameObject.AddComponent(); - replay.SendMessage("Awake", SendMessageOptions.DontRequireReceiver); replay.LoadReplay(taskId); Debug.Log($"7. Replay OK. {replay.TotalFrames} frames, {replay.CurrentFrames.Count} records"); diff --git a/src/Unity/Assets/Scripts/Managers/ScenarioManager.cs b/src/Unity/Assets/Scripts/Managers/ScenarioManager.cs index de3b245..ece06ac 100644 --- a/src/Unity/Assets/Scripts/Managers/ScenarioManager.cs +++ b/src/Unity/Assets/Scripts/Managers/ScenarioManager.cs @@ -16,15 +16,22 @@ namespace CounterDrone.Unity void Awake() { - var paths = new UnityPathProvider(); - Debug.Log($"ScenarioManager.Awake: dbPath={paths.GetMainDbPath()}"); - var db = new DatabaseManager(paths).OpenMainDb(); - _service = new ScenarioService( - new SimTaskRepository(db), new CombatSceneRepository(db), - new ControlZoneRepository(db), new TargetConfigRepository(db), - new EquipmentDeploymentRepository(db), new CloudDispersalRepository(db), - new RoutePlanRepository(db), new WaypointRepository(db)); - Debug.Log("ScenarioManager.Awake: OK"); + try + { + var paths = new UnityPathProvider(); + Debug.Log($"ScenarioManager.Awake: dbPath={paths.GetMainDbPath()}"); + var db = new DatabaseManager(paths).OpenMainDb(); + _service = new ScenarioService( + new SimTaskRepository(db), new CombatSceneRepository(db), + new ControlZoneRepository(db), new TargetConfigRepository(db), + new EquipmentDeploymentRepository(db), new CloudDispersalRepository(db), + new RoutePlanRepository(db), new WaypointRepository(db)); + Debug.Log("ScenarioManager.Awake: OK"); + } + catch (System.Exception ex) + { + Debug.LogError($"ScenarioManager.Awake FAILED: {ex}"); + } } public SimTask CreateTask(string name, string number) => _service.CreateTask(name, number);