fix: ManagerVerification显式调用Awake避免ContextMenu不触发

This commit is contained in:
tian 2026-06-12 16:06:32 +08:00
parent 5851ce2ea8
commit b40392c64a
2 changed files with 5 additions and 11 deletions

View File

@ -1,11 +0,0 @@
fileFormatVersion: 2
guid: e01aeeafabfdbdc4f9c1de138cd6f96b
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -23,9 +23,11 @@ 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}");
@ -71,6 +73,7 @@ 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;
@ -84,6 +87,7 @@ 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,
@ -92,6 +96,7 @@ 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");