ScenarioManager.Awake加try-catch定位根因
This commit is contained in:
parent
b40392c64a
commit
59732d2542
@ -23,11 +23,9 @@ namespace CounterDrone.Unity
|
||||
System.IO.Directory.Delete(paths.GetFramesDir(), true);
|
||||
|
||||
var modelMgr = gameObject.AddComponent<ModelManager>();
|
||||
modelMgr.SendMessage("Awake", SendMessageOptions.DontRequireReceiver);
|
||||
Debug.Log("1. ModelManager OK");
|
||||
|
||||
var scenarioMgr = gameObject.AddComponent<ScenarioManager>();
|
||||
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<SimulationRunner>();
|
||||
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<ReportManager>();
|
||||
reportMgr.SendMessage("Awake", SendMessageOptions.DontRequireReceiver);
|
||||
detail = scenarioMgr.GetDetail(taskId);
|
||||
var simEvents = new List<SimEvent>(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<ReplayController>();
|
||||
replay.SendMessage("Awake", SendMessageOptions.DontRequireReceiver);
|
||||
replay.LoadReplay(taskId);
|
||||
Debug.Log($"7. Replay OK. {replay.TotalFrames} frames, {replay.CurrentFrames.Count} records");
|
||||
|
||||
|
||||
@ -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);
|
||||
|
||||
Loading…
Reference in New Issue
Block a user