From e782062377399a7f3cf1db696b5d3e1c44a4e7c9 Mon Sep 17 00:00:00 2001 From: tian <11429339@qq.com> Date: Wed, 17 Jun 2026 15:50:22 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20Unity=20=E7=AB=AF=E6=8E=A5=E5=85=A5=20D?= =?UTF-8?q?ataService=20=E2=80=94=20=E5=89=8D=E7=AB=AF=E5=8F=AF=E7=9B=B4?= =?UTF-8?q?=E6=8E=A5=20CRUD=20=E5=9F=BA=E7=A1=80=E6=95=B0=E6=8D=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit SimulationRunner 新增 DataService 属性 SimulationBootstrap 自动创建 DataService 并注入 Runner 前端调用: runner.DataService.GetAllDrones() 等 --- src/Unity/Assets/Scripts/Managers/SimulationBootstrap.cs | 9 ++++++++- src/Unity/Assets/Scripts/Managers/SimulationRunner.cs | 3 +++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/Unity/Assets/Scripts/Managers/SimulationBootstrap.cs b/src/Unity/Assets/Scripts/Managers/SimulationBootstrap.cs index f2ad479..a11db69 100644 --- a/src/Unity/Assets/Scripts/Managers/SimulationBootstrap.cs +++ b/src/Unity/Assets/Scripts/Managers/SimulationBootstrap.cs @@ -32,9 +32,15 @@ namespace CounterDrone.Unity { var paths = new UnityPathProvider(); var dbm = new DatabaseManager(paths); - var db = dbm.OpenMainDb(); // 自动种子弹药 + 6个[Demo]想定 + var db = dbm.OpenMainDb(); // 自动种子弹药 + 6个[Demo]想定 + 基础数据 SqliteConnectionTracker.Track(db); + var dataService = new DataService( + new AmmunitionSpecRepository(db), new FireUnitSpecRepository(db), + new DroneSpecRepository(db), new SensorSpecRepository(db), + new EnvironmentSpecRepository(db), new FormationTemplateRepository(db), + new RouteTemplateRepository(db)); + var scenario = new ScenarioService( new SimTaskRepository(db), new CombatSceneRepository(db), new ControlZoneRepository(db), new TargetConfigRepository(db), @@ -113,6 +119,7 @@ namespace CounterDrone.Unity Runner = GetComponent(); if (Runner == null) Runner = gameObject.AddComponent(); else Runner.enabled = true; + Runner.DataService = dataService; Runner.LoadAndStart(taskId); Runner.Engine.TimeScale = _timeScale; diff --git a/src/Unity/Assets/Scripts/Managers/SimulationRunner.cs b/src/Unity/Assets/Scripts/Managers/SimulationRunner.cs index 51a49f5..38dd87d 100644 --- a/src/Unity/Assets/Scripts/Managers/SimulationRunner.cs +++ b/src/Unity/Assets/Scripts/Managers/SimulationRunner.cs @@ -32,6 +32,9 @@ namespace CounterDrone.Unity public SimulationEngine Engine => _engine; + private IDataService _dataService; + public IDataService DataService { get => _dataService; set => _dataService = value; } + public void Awake() { _paths = new UnityPathProvider();