feat: Unity 端接入 DataService — 前端可直接 CRUD 基础数据

SimulationRunner 新增 DataService 属性
SimulationBootstrap 自动创建 DataService 并注入 Runner
前端调用: runner.DataService.GetAllDrones() 等
This commit is contained in:
tian 2026-06-17 15:50:22 +08:00
parent 120f2805ec
commit e782062377
2 changed files with 11 additions and 1 deletions

View File

@ -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<SimulationRunner>();
if (Runner == null) Runner = gameObject.AddComponent<SimulationRunner>();
else Runner.enabled = true;
Runner.DataService = dataService;
Runner.LoadAndStart(taskId);
Runner.Engine.TimeScale = _timeScale;

View File

@ -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();