|
|
c610573e34
|
fix: 物理间隔错开发射 — 云团直径/无人机速度,非硬件间隔
- 跨 FireUnit 按 physicsInterval = max(ChannelInterval, cloudDiameter/droneSpeed) 错开发射时间
- Piston 200km/h 测试通过(被摧毁=1)
- Jet 500km/h 测试通过(被摧毁=1)
|
2026-06-13 10:55:58 +08:00 |
|
|
|
08427e9e08
|
feat: 新增轻型地基火力单元模板(2炮×4通道); Piston测试使用 ground-light×2
|
2026-06-13 10:46:41 +08:00 |
|
|
|
c08edbd2f9
|
feat: 火力单元通道模型 + 默认配置 + 引擎通道展开
- FireUnit: 新增 GunCount/ChannelsPerGun/ChannelInterval/检测设备字段
- EquipmentDeployment: 新增 GunCount/ChannelsPerGun/ChannelInterval
- DefaultFireUnits: 3 种默认火力单元(标准地基/重地基/空基)
- Planner: 逐通道齐射分配,ChannelInterval 错开,Cooldown 轮次
- Engine: PlatformEntity 按 GunCount×ChannelsPerGun 展开
- BuildFireUnits: 与引擎同步展开通道
- FullPipelineTests: 使用 DefaultFireUnits 配置
|
2026-06-13 10:42:08 +08:00 |
|
|
|
9bd1d5a7ee
|
test: 收紧集成测试断言 — 击毁才通过,暴露 Planner 真实场景不足
- 删除 ApplyDefensePlan helper(引擎自治,不再需要外部调Planner)
- Piston 200km/h: 断言 DroneStatus==Destroyed(当前 FAIL)
- Jet 500km/h: 断言 DroneStatus==Destroyed
- AirBased 300km/h: 断言 DroneStatus==Destroyed(当前 FAIL)
- 测试真实暴露 Planner 算法缺陷
|
2026-06-13 10:06:05 +08:00 |
|
|
|
50ec14bb24
|
refactor: 引擎自治 — 不再需要外部传 SetFireSchedule
- SimulationEngine.Initialize 内建 BuildFireUnits/BuildDroneGroups → 自动调 Planner
- 删除 FullPipelineTests 中的 BuildFireSchedule/_lastFireSchedule/手动 SetFireSchedule
- Unity Managers 删除手动 SetFireSchedule 调用
- 引擎是 Planner 的唯一调用者,测试和 UI 不再碰火控逻辑
|
2026-06-13 09:58:11 +08:00 |
|
|
|
77351d8198
|
fix: FireEvent 冷却错开,同平台多弹不再同 tick 被跳过
根因:同一平台多弹 FireTime 相同,引擎同 tick 处理时第 1 发后冷却触发 Ready=false,后续全被跳。
修正:每发 FireTime 增加 i * Cooldown,保证间隔 ≥ 冷却时间。
|
2026-06-13 09:56:11 +08:00 |
|
|
|
e3ea595204
|
refactor: SimulationEngine 内部调用 Planner,不再依赖外部传 SetFireSchedule
- Initialize 内建 BuildFireUnits/BuildDroneGroups
- 自动从 DB 取 AmmunitionSpec 创建 DefaultDefensePlanner
- SetFireSchedule 保留为手动覆盖(测试可用)
- fireSchedule 空时才自动生成
|
2026-06-13 09:53:08 +08:00 |
|
|
|
4411a452dc
|
fix: Quantity expand + PlatformIndex 映射修正
- ApplyDefensePlan 展开 EquipmentDeployment.Quantity → 多个 FireUnit
- Planner 分配后用 fireUnits.IndexOf 修正 PlatformIndex
- 新增 FullPipeline_Piston_VerifiesRoundAllocation 验证 ≥8 发
- Piston 集成测试加入计划大小断言
|
2026-06-13 09:50:24 +08:00 |
|
|
|
5667aef495
|
fix: OnDisable + Dispose 替代 OnDestroy + Close,修复 domain reload SQLite 崩溃
OnDisable 在 domain reload 前触发,Dispose() 清理 prepared statements 并调用 GC.SuppressFinalize,阻止 GC finalizer 线程崩溃
|
2026-06-13 09:42:10 +08:00 |
|
|
|
8366bfcb93
|
fix: Planner 从多单元凑弹药,不再被单个 TotalMunitions 卡死
每个威胁可从多个火力单元汇集弹药,直到满足需求或耗尽。
单元测试 24/24 通过。
|
2026-06-13 09:40:37 +08:00 |
|
|
|
2bb8ba2e1e
|
fix: Manager OnDestroy 关闭 SQLite 连接,修复 domain reload 崩溃
- 所有 Manager 在 Awake 保存 _db 引用,OnDestroy 调用 Close()
- ScenarioManager/ModelManager/ReportManager/GroupManager/SimulationRunner 全部修复
- 崩溃原因:domain reload 时 GC finalizer 线程清理 prepared statements,DB 未关闭导致 sqlite3_finalize 竞态
|
2026-06-13 09:35:53 +08:00 |
|
|
|
b957a5e2b4
|
feat: Planner 使用真实物理计算 + 完善单元测试 + 规则7
- ComputeEffectiveRadius: 基于 AmmunitionSpec 三阶段扩散模型
- CalcRoundsNeeded: 真实有效半径和弹药参数
- GenerateFireEvents: recommendedTiming = arrivalTime - expansionTime
- 候选概率基于真实覆盖计算
- 24 个单元测试覆盖威胁排序/弹药匹配/候选过滤/弹药数/时机/多威胁/空基
- AGENTS.md 规则7: 只跑相关测试,不跑全量
|
2026-06-13 09:30:04 +08:00 |
|
|
|
7d080bc929
|
fix: Unity 测试配置 - 火力单元改为 8×3 发(与集成测试一致)
|
2026-06-13 09:19:30 +08:00 |
|
|
|
66537d1621
|
fix: Unity 脚本编译错误 - 缺少 AVector3 别名和 detail 变量
|
2026-06-13 09:16:47 +08:00 |
|
|
|
3a2f68b02b
|
refactor: 删除 SimulationRunner.BuildFireSchedule fallback
- Planner 输出直接传给 Engine.SetFireSchedule
- ManagerVerification/SimulationBootstrap 在 LoadAndStart 前设置 fire schedule
- 引擎不再需要从 CloudDispersal 反推发射计划
|
2026-06-13 09:15:21 +08:00 |
|
|
|
317f47280b
|
refactor: DefensePlanner 替代 DefenseAdvisor
- 新增 IDefensePlanner 接口 + DefaultDefensePlanner 实现
- FireUnit 重构为统一平台模型(Type/Position/CruiseSpeed/ReleaseAltitude/MuzzleVelocity)
- DroneGroup 加入威胁指数(类型系数×速度系数)和优先级排序
- 五步流水线:威胁排序→弹药匹配→候选生成→贪心分配→时序生成
- 弹药精确匹配,不降级;临界方案基于50%概率阈值
- 删除 IDefenseAdvisor/DefaultDefenseAdvisor/RecommendMultiGroup
- AlgorithmFactory 注册 IDefensePlanner
- 测试更新:DefensePlannerTests 替代旧测试,FullPipelineTests 适配新 API
- Unity Managers 更新调用
- 125 测试全通过
|
2026-06-12 18:20:25 +08:00 |
|
|
|
1e07bcc535
|
docs: DefensePlanner 技术方案定稿
- 五步流水线:威胁排序→弹药匹配→候选生成→贪心分配→时序生成
- 统一输入:List<FireUnit> + List<DroneGroup> + CombatScene
- 输出:PlannerResult { Best, Critical }
- 威胁排序:类型系数×速度系数 / 到达时间
- 临界方案:刚好≥50%概率的最小配置
- 弹药精确匹配,不降级;贪心 v1,后续可升级
|
2026-06-12 18:12:41 +08:00 |
|
|
|
0a3c444a4b
|
refactor: 推荐算法统一处理空基/地基平台类型
- ThreatProfile 新增 PreferredPlatformType 字段
- DefaultDefenseAdvisor 根据平台类型正确计算 FireTime/CruiseSpeed/ReleaseAltitude
- 空基:FireTime 提前扣除飞行+下落时间;地基:保持原逻辑
- 删除 SimulationEngine.AdjustFireTimesForAirBased(引擎不再做适配)
- 集成测试直接用 PreferredPlatformType 驱动空基方案
- 实施文档同步
|
2026-06-12 17:52:44 +08:00 |
|
|
|
c4d9ccc4fa
|
feat: 空基平台飞行与投弹功能
- PlatformEntity: 新增状态机 Idle→FlyingToTarget→ReadyToRelease
- EquipmentDeployment: 新增 CruiseSpeed 字段(空基平台巡航速度)
- MunitionEntity: 空投弹药继承载机速度矢量,替代自由落体
- Kinematics: 新增 AirDropPosition/AirDropFallTime/DirectionVelocity 工具方法
- SimulationEngine: 空基平台先飞后投,AdjustFireTimesForAirBased 补偿飞行耗时
- SimulationRunner: 空基平台 3D 可视化(蓝色 Capsule)
- 集成测试 Scenario_AirBased_PlatformFliesAndDrops 通过(8x 加速)
- 实施文档同步进度
|
2026-06-12 17:38:21 +08:00 |
|
|
|
a8b75c00cf
|
v0.2.0
|
2026-06-12 16:43:26 +08:00 |
|
|
|
b7afe23238
|
fix: ManagerVerification用固定tickDt替代Editor不稳定的Time.deltaTime
|
2026-06-12 16:36:03 +08:00 |
|
|
|
845f8dcd1b
|
所有Manager Awake改成public + ManagerVerification直调Awake
|
2026-06-12 16:32:31 +08:00 |
|
|
|
1bbe5d28c5
|
fix: 报告生成空列表保护 + 仿真后关闭引擎防DB锁
|
2026-06-12 16:26:10 +08:00 |
|
|
|
aa6e4d3508
|
fix: TargetConfig加GroupId=default匹配RoutePlan
|
2026-06-12 16:21:02 +08:00 |
|
|
|
6bbad9155a
|
fix: SimulationRunner也补SendMessage(Awake)
|
2026-06-12 16:18:25 +08:00 |
|
|
|
fb6c4c7c12
|
fix: ManagerVerification手动插入默认弹药, 数据库无JSON时表为空
|
2026-06-12 16:16:48 +08:00 |
|
|
|
1eba842487
|
fix: Edit模式下AddComponent不调Awake, 显式SendMessage
|
2026-06-12 16:11:51 +08:00 |
|
|
|
59732d2542
|
ScenarioManager.Awake加try-catch定位根因
|
2026-06-12 16:08:18 +08:00 |
|
|
|
b40392c64a
|
fix: ManagerVerification显式调用Awake避免ContextMenu不触发
|
2026-06-12 16:06:32 +08:00 |
|
|
|
5851ce2ea8
|
fix: ManagerVerification + SimulationBootstrap适配多编队 Route/WaypointGroups
|
2026-06-12 16:04:49 +08:00 |
|
|
|
2408307487
|
check_unity_build: 加说明Unity batchmode不保证捕获编译错误
|
2026-06-12 15:56:49 +08:00 |
|
|
|
6f56cff655
|
fix: ScenarioManager重复Service属性导致编译失败
|
2026-06-12 15:52:15 +08:00 |
|
|
|
6030b8de07
|
RecommendMultiGroup: 多编队火力分配 + 专一弹药优先 + 130测试通过
|
2026-06-12 15:46:05 +08:00 |
|
|
|
12cb6576fe
|
多批次Phase1: RoutePlan改Id主键+Waypoint加GroupId+ScenarioService/Engine/所有测试适配
|
2026-06-12 15:33:37 +08:00 |
|
|
|
42b390a264
|
复用判定: AmmoChangeTime替代固定10分钟; 同种弹秒级复用, 异种弹检查间隔
|
2026-06-12 15:26:09 +08:00 |
|
|
|
44d88ad383
|
多批次设计: 算法自动匹配火力单元→编队, 不写死一对一, 引擎无感知
|
2026-06-12 15:23:21 +08:00 |
|
|
|
a0d8afb42a
|
设计文档: 多批次多编队支持 — RoutePlan改复合PK + 独立拦截方案 + 报告汇总
|
2026-06-12 15:08:47 +08:00 |
|
|
|
9ac4a8494c
|
check_unity_build.ps1自动重建DLL; 更新Plugins; 防止漏更新
|
2026-06-12 15:03:06 +08:00 |
|
|
|
523703be2f
|
架构文档引擎流程更新: 8阶段改FireSchedule+事件驱动, 去掉EventQueue/第三方DLL描述
|
2026-06-12 14:55:09 +08:00 |
|
|
|
31291004ae
|
架构文档修正: EventQueue→FireSchedule, IRecordWriter→FrameDataStore, PDF→Markdown
|
2026-06-12 14:53:39 +08:00 |
|
|
|
b77c308517
|
补充GroupManager + 架构文档V8(事件驱动/FireSchedule/三阶段扩散)
|
2026-06-12 14:52:07 +08:00 |
|
|
|
19dec8e30b
|
添加check_unity_build.ps1 + AGENTS.md规则: 改Unity脚本后编译检查
|
2026-06-12 14:47:02 +08:00 |
|
|
|
f2204bf3b4
|
fix: SimulationRunner解析函数缺失 + 变量声明丢失
|
2026-06-12 14:43:07 +08:00 |
|
|
|
3e12dba143
|
ICloudDispersionModel加Elapsed属性 + 帧数据输出云团存在时间
|
2026-06-12 14:25:23 +08:00 |
|
|
|
c3e1fc797e
|
fix: MockDispersion实现Phase属性
|
2026-06-12 14:22:05 +08:00 |
|
|
|
bb0a2454df
|
ICloudDispersionModel加Phase属性 + 帧数据输出扩散阶段
|
2026-06-12 14:21:32 +08:00 |
|
|
|
202e5ee117
|
对接文档更新: 事件驱动API + FireSchedule + 默认弹药表
|
2026-06-12 12:36:40 +08:00 |
|
|
|
04e02c43eb
|
报告重构: 仿真结果提前到第一章, 统一七章结构
|
2026-06-12 12:21:02 +08:00 |
|
|
|
50b7bd7f69
|
测试任务名改为描述性名称
|
2026-06-12 11:59:12 +08:00 |
|
|
|
bb0f5bdc50
|
报告推荐方案加发射方式(单次齐射/连续/脉冲)
|
2026-06-12 11:54:12 +08:00 |
|