d8f8ebd336
ModelManager.Update→UpdateModel(避免与 MonoBehaviour.Update 冲突)
2026-06-18 19:50:39 +08:00
ce11e0eb1f
修复 Unity 编译:EnumMetadata using + nullable 警告
2026-06-18 19:49:38 +08:00
efdd5ec94f
对接文档 V1.8:GetEnums API + Manager 完整方法列表
2026-06-18 19:46:53 +08:00
1fdffd2a41
GetEnums API:返回所有枚举定义供前端下拉框使用
2026-06-18 19:46:34 +08:00
178923c007
对接文档同步:完整 CRUD API 列表
2026-06-18 19:44:53 +08:00
5e7fd2fb16
IScenarioService +DeleteCloudDispersal
2026-06-18 19:44:29 +08:00
225590ac19
补全所有模型的完整 CRUD 接口
...
- ModelService: +AddModel/UpdateModel
- IScenarioService: +UpdateScenario +GetScene +Get/DeleteControlZone
+Add/Update/Delete/GetScenarioDrones +Add/Update/Delete/GetDeploymentUnits
+GetCloudDispersal +GetRoutes/DeleteRoute +GetWaypoints/GetWaypointsByWave/DeleteWaypoint
- ScenarioManager 全面暴露新增接口
- 238 测试全过
2026-06-18 19:42:48 +08:00
d73b586982
更新 Unity DLL(ScenarioDrone/ScenarioUnit 新表结构)
2026-06-18 17:50:42 +08:00
e30f173312
修复 Unity Manager 脚本:适配 ScenarioDrone/ScenarioUnit 新 schema
2026-06-18 17:50:15 +08:00
d2d0ae1414
air-standard 探测参数调整:雷达4km/光电3km/红外2km
2026-06-18 17:35:59 +08:00
bba7d2e505
air-standard 补 RadarRange=8000m
2026-06-18 17:34:33 +08:00
473890ed37
defaults.json: 补全 DroneSpec/FireUnitSpec 的 Model/Description 字段
2026-06-18 17:31:56 +08:00
184213b3c5
对接文档 V1.7:数据分层架构 + ScenarioDrone/ScenarioUnit 外键引用
2026-06-18 17:28:29 +08:00
1aa927e471
修复 ScenarioServiceTests 编译告警(CS8602/CS8625 空引用)
2026-06-18 17:26:58 +08:00
f0f5f76b8b
SimulationReport: TargetCount→DroneCount, EquipmentCount→UnitCount
2026-06-18 17:25:02 +08:00
843141a7a8
修复测试断言:适配新 schema 的业务语义
...
- SaveDeployment: 显式 Guid 避免同纳秒冲突,验证 2 个部署正确保存
- DeleteDetection: 用 CreateDetectionUnit 创建传感器,verifying PositionX
- TargetDetected: 验证发射平台自带雷达可触发探测事件
2026-06-18 17:20:59 +08:00
4b08ffa659
238/238 tests pass: ScenarioDrone/ScenarioUnit migration complete
...
- TestData uses DB existing IDs (ground-light/radar-mr/shahed)
- CreateDetectionUnit with SensorSpecId=radar-mr
- CreateScenarioUnit with FireUnitSpecId=ground-light
- Fixed SaveDeployment assertion value
2026-06-18 17:14:51 +08:00
bb04411d6d
测试适配进展:235/238 通过,修复大部分断言和 spec 引用
2026-06-18 17:12:06 +08:00
6d56dec9a9
测试迁移:ScenarioDrone/ScenarioUnit 精简后测试适配
...
- TestData 新增 CreateScenarioDrone/CreateScenarioUnit 等辅助方法
- 批量替换旧字段构造为 spec 引用
- 230/238 通过,8 个边缘测试待修
2026-06-18 17:01:13 +08:00
69ec9ed0e2
ScenarioDrone/ScenarioUnit 表精简:外键引用基础数据,去冗余字段
...
- ScenarioDrone: 仅保留 Id/ScenarioId/DroneSpecId/WaveId/Quantity
- ScenarioUnit: 仅保留 Id/ScenarioId/FireUnitSpecId/SensorSpecId/Position 等想定字段
- DroneEntity/PlatformEntity 构造函数改为接收 DroneSpec/FireUnitSpec
- SimulationEngine 加载 spec 字典,build 方法通过 FK 查 spec
- ReportGenerator/ReportService 通过 spec 字典取值
- DefaultLaneDivider.Divide 从 DroneWave.Quantity 取值
- Core 编译通过,测试待修复
2026-06-18 16:47:30 +08:00
537671ab3a
DroneProfile→ScenarioDrone / EquipmentDeployment→ScenarioUnit 重命名
...
- 模型表: ScenarioDrone(原DroneProfile) / ScenarioUnit(原EquipmentDeployment)
- ScenarioConfig.Equipment→Units
- 数据库旧表清理 + scenariosVersion 4→5
- 238 测试全过
2026-06-18 16:36:25 +08:00
7413077514
修复 StreamingAssets/planner_config.json 残留 Piston/Electric 枚举值
2026-06-18 16:02:50 +08:00
9f682c9b91
SaveTarget→SaveDroneProfile + 测试方法名同步
2026-06-18 15:55:37 +08:00
67cea1490d
Target→Profile / Targets→DroneProfiles 重命名
...
- DroneWave.Target → Profile
- ScenarioConfig.Targets → DroneProfiles
- DefensePlanner / SimulationEngine / ReportService 全部引用同步
- 更新 Unity DLL + defaults.json
- 238 测试全过
2026-06-18 15:37:25 +08:00
46ce1234ee
修复 Unity 编译错误:变量冲突、DroneWave.DroneType 不存在、nullable 警告
...
- SimulationBootstrap: scenario 变量名冲突 → sc
- ManagerVerification: DroneWave.DroneType → Target (DroneWave 无此属性)
- ReportManager: string? → 拆为两个重载避免 nullable annotation 警告
2026-06-18 15:27:13 +08:00
0434920100
更新 Unity DLL 编译产物
2026-06-18 15:25:20 +08:00
ff6db2786e
VERSION 0.10.0 — 模型重命名、属性完善、文档同步
...
- VERSION: 0.9.0 → 0.10.0
- CHANGELOG: 新增 0.10.0 条目
- 架构设计 V15: DroneType 枚举清理、表结构加 Model/Description
- 对接文档 V1.6: 去历史对照,只写现状核心模型表
- 数据库迁移: 删旧表 SimTask/TargetConfig/SimulationReport
- 238 测试全过
2026-06-18 15:24:14 +08:00
ad0eaf47da
完善模型属性:加 Model/Description 字段,TaskNumber→ScenarioNumber,Task→Info,Task→Scenario 方法名
...
- DroneProfile/DroneSpec: 加 Model、Description
- Scenario: 加 Description,TaskNumber→ScenarioNumber
- EquipmentDeployment/FireUnitSpec: 加 Description
- ScenarioConfig: Task→Info
- ScenarioService: CreateTask→CreateScenario 等方法名统一
- 238 单元测试通过
2026-06-18 15:15:41 +08:00
ca0ce8aa52
重命名核心模型:TargetConfig→DroneProfile, SimTask→Scenario, TaskFullConfig→ScenarioConfig, TaskId→ScenarioId
...
- DroneType 枚举清理:移除 Electric/Piston,重编号 HighSpeed=2
- planner_config.json / defaults.json 同步迁移
- 238 单元测试全部通过
2026-06-18 15:02:58 +08:00
def3996f4f
更新编译产物:Core.dll 复制到 Unity Plugins
2026-06-18 13:43:14 +08:00
fb87fdfa22
统一平台物理模型:去除空基/地基分支
...
- BuildCandidate 合并 BuildAirBased/GroundBasedCandidate 为单一方法,统一用 MuzzleVelocity
- TryGenerateFireEvents 统一用 InterceptCalculator.Compute,去除 ComputeHorizontal
- 抛物线选解策略:两解逐一验证可行性(距离匹配 + fireTime>0),选最早拦截的解
- 空基 FireUnit 补充 MuzzleVelocity 字段(等于 CruiseSpeed)
- 所有 238 个单元测试通过
2026-06-18 13:40:48 +08:00
92d1131dc1
fix: 统一选择远点命中 + FlightDuration 传递,喷气式通过
...
PlanUnitLane: ParabolicMotion.GetFlightTimes 选远点(离无人机近)
FireEvent: 新增 FlightDuration 字段
MunitionEntity: 接收 flightDuration → _useTimeArrival,按时间到达
地基: FlightDuration = interceptShellTime(保持 InterceptCalculator 一致性)
空基: FlightDuration = ParabolicMotion 选出的远点 tof
238 全部通过
2026-06-18 10:04:30 +08:00
b4f9a4055c
build: 同步 DLL 到 Unity Plugins
2026-06-18 00:14:44 +08:00
4631049aad
refactor: 引入 ParabolicMotion 替代自研抛物线方程,修复 c 符号 bug
...
新增 ParabolicMotion 模块:
- GetFlightTimes(yTarget) 返回所有正时间
- GetFlightTime(yTarget, pref) 按偏好选择
- SolveAngles(range, hd, v0) 返回两个角度
- 支持 TrajectoryPreference {High, Low, Nearest, Farthest}
Kinematics 委托给 ParabolicMotion:
- CalculateLaunchAngle → SolveAngle(Low)
- ComputeParabolicRange → ComputeRange(Nearest)
修复 AI 模块 bug:c = y0 - yTarget → c = yTarget - y0
2026-06-18 00:12:45 +08:00
5909c86402
fix: ManagerVerification waypoint 缺 Speed 字段
2026-06-17 23:25:08 +08:00
ebebb41671
fix: 创建 StreamingAssets 并放入 defaults.json 和 planner_config.json
2026-06-17 23:23:29 +08:00
eb0cb66196
fix: 同步 DLL 到 Unity Assets/Plugins(不是 unity_plugins)
2026-06-17 23:22:23 +08:00
3d33aac428
fix: 强制同步 Core.dll(unity_plugins 在 gitignore 中)
2026-06-17 20:24:00 +08:00
edea5eaaf0
docs: 实施跟踪 V1.7 — Phase 12 + 高弹道待解决问题
2026-06-17 20:22:35 +08:00
276bb7adfa
fix: 空基/地基统一发射角计算,风偏纳入;三机全灭
...
Kinematics: ComputeParabolicRange 垂直运动直接算时间
DefensePlanner: cloudGen 先算再基于此算角度,消除风偏导致的不一致
DefaultLaneDivider: 宽+深双维度判断拆分
DroneEntity/RoutePlan: 支持 LateralAxis/LongitudinalAxis
MunitionEntity: _arrivesDescending 修正
测试: 237 通过,Jet(Skip:高弹道)
2026-06-17 20:20:00 +08:00
0b7bf2ab6f
feat: 编队轴配置 + LaneDivider 策略 + 数据版本 V3
...
RoutePlan/FormationTemplate: 新增 LateralAxis/LongitudinalAxis (0=X,1=Y,2=Z)
DroneEntity: 按 axis 展开编队偏移(lat轴→xyzw, long轴→x偏移, vert→y)
DefaultLaneDivider: 宽/深双维度判断,任一超云团半径则拆分
DefensePlanner: PlanUnitLane 读 LateralAxis 决定偏移方向
defaults.json: air-standard EORange 9600→4000, 所有编队加 axis 字段, 版本 2→3
DatabaseManager: 场景版本 2→3
2026-06-17 18:52:53 +08:00
6b2905b9f8
fix: 活塞想定坐标规范化 — 己方0点,无人机在远方6600→0
2026-06-17 18:01:22 +08:00
005efae27e
refactor: 空基/地基统一规划流程 — 碰撞点之后无分支
...
DefensePlanner:
- 每发目标点独立计算 launchAngle(地基+空基统一用 CalculateLaunchAngle)
- 碰撞点后统一:cloudGen=tx-wx*expansionTime, deliveryTime 唯一分支
- 空基不再固定 θ=0,改用弹道求解 → 每发云团沿航线均匀分布
InterceptCalculator.ComputeHorizontal:
- 自动识别航路方向(±X),不再硬编码 +X
Kinematics:
- ComputeParabolicRange/ParabolicApex 接受负角度(俯射)
预设:
- air-standard EORange: 9600→4000(1.2×探测距离=4800, 无人机4500m≈1.12×)
- 空基坐标:己方0, 平台5000, 无人机9500→0
- 活塞坐标:平台6600 (1.1×探测6000)
删除不适合新规划的单元测试(AirBased 场景测试)
2026-06-17 17:59:13 +08:00
06038d3e90
fix: 每发炮弹独立计算发射角,云团均匀分布;探测门控发射
...
DefensePlanner:
- PlanUnitLane 中为目标点(tx,ty,tz)重新计算 launchAngle
- 不再复用 InterceptCalculator 的统一角度,每发角度不同
- 活塞想定:平台从 7000→6600(1.1×探测距离)
结果:8发炮弹云团沿航线均匀分布,间距~32m
2026-06-17 17:14:37 +08:00
24ba621581
fix: 发射计划以探测时刻为时间起点 — 引擎等探测后才执行
...
SimulationEngine:
- _anyThreatDetected 门控:无人机未进入探测范围前不执行发射
- _detectionTime 记录首次探测时刻
- 发射时间 = fe.FireTime(偏移) + _detectionTime
- 删除 AirBased/GroundBased_LaunchesWithCorrectDescription(测试旧行为)
设计:planner 给出的 fireTime 是相对探测时刻的偏移,引擎在探测后应用偏移
2026-06-17 16:44:14 +08:00
79256d56f4
release: 0.9.0 — CHANGELOG + VERSION + 任务跟踪 Phase 11
2026-06-17 16:13:05 +08:00
0b531de794
docs: 同步设计文档 — 空基固定阵位发射、实体属性更新、基础数据 CRUD 架构
2026-06-17 16:10:54 +08:00
bc8b401ef6
docs: 总体架构 V14 — FrameDataStore 内存回放双层存储设计
2026-06-17 16:08:58 +08:00
6098186f34
perf: 回放优先用内存 LiveFrames — 仿真刚结束时避免读数据库
...
FrameDataStore:
- Flush() 后保留 LiveFrames 副本在内存
- BeginRecording() / Discard() 时清除 LiveFrames
ReplayController:
- LoadReplay(taskId, frameStore) 优先取 LiveFrames
- frameStore 为 null 或 LiveFrames 为空时回退读 SQLite
- SimulationRunner 暴露 FrameStore 供 ReplayController 传入
2026-06-17 16:07:24 +08:00
4c2c18cfcc
docs: 重写对接文档 — 五步完整工作流(基础数据→想定→仿真→报告→回放)
2026-06-17 15:57:41 +08:00