架构文档引擎流程更新: 8阶段改FireSchedule+事件驱动, 去掉EventQueue/第三方DLL描述

This commit is contained in:
tian 2026-06-12 14:55:09 +08:00
parent 31291004ae
commit 523703be2f

View File

@ -542,11 +542,11 @@ SimulationEngine
MunitionEntity 销毁
云团扩散膨胀(调用第三方 DLL 扩散模型
云团扩散膨胀(三阶段模型:爆轰→湍流→高斯
│ 持续膨胀 + 消散计时
无人机进入云团范围
│ 施加毁伤(调用第三方 DLL 毁伤模型
│ 施加毁伤(IDamageModel 接口,三种机制自主实现
│ 吸入式灭火 / 爆燃式 / 吸入式爆炸
无人机被摧毁 / 存活
@ -555,60 +555,48 @@ SimulationEngine
Unity 渲染毁伤效果(尾焰异常、姿态失控、坠落)
```
### 5.3 仿真 Tick 流程8 阶段)
### 5.3 仿真 Tick 流程
```
1. 【探测阶段】
FOR EACH 探测设备
├─ 扫描场景内无人机(距离 < DetectionRadius
└─ 发现目标 → EventQueue.Enqueue(TargetDetected)
1. 【发射阶段】
按 FireSchedule 执行
├─ SimulationTime ≥ FireTime → 平台发射弹药
└─ 触发 OnMunitionLaunched 事件
2. 【火控决策阶段】
处理 TargetDetected 事件:
├─ 分配目标给可用搭载平台
├─ 空基平台:计算拦截航路,飞向投放点
└─ 地基平台:计算射击诸元(发射角、方位角)
3. 【发射阶段】
FOR EACH 搭载平台:
├─ 满足发射条件 & 冷却完毕 → 生成 MunitionEntity
│ ├─ 空基:初始速度 = 平台速度,初始位置 = 投放点
│ └─ 地基:初始速度 = MuzzleVelocity按抛物线计算
└─ 进入冷却倒计时
4. 【弹药飞行】
2. 【弹药飞行 → 云团生成】
FOR EACH MunitionEntity
├─ 空基弹药:自由落体/滑翔至云团生成高度
├─ 地基弹药:抛物线位置 = f(初速, 发射角, t)
└─ 到达释放条件 → 生成 CloudEntity → MunitionEntity 销毁
└─ EventQueue.Enqueue(CloudGenerated)
├─ 抛物线弹道 / 自由落体
└─ 到达释放高度 → 生成 CloudEntity → 触发 OnCloudGenerated
5. 【云团演化】(调用第三方 DLL
3. 【云团演化】
FOR EACH CloudEntity
├─ 扩散膨胀radius = DLL.Dispersion.Update(deltaTime, config)
├─ 更新粒子系统参数(半径、透明度、颜色 → 写入 StateData
└─ 剩余时间 ≤ 0 → 销毁
├─ GaussianPuffDispersion.Tick():三阶段扩散
├─ 更新粒子参数(半径、透明度 → 写入 StateData
└─ 消散条件满足 → 移除
6. 【毁伤判定】(调用第三方 DLL
DOUBLE LOOP DroneEntity × CloudEntity
├─ 无人机坐标 ∈ 云团球体?
├─ 是 → damage = DLL.DamageModel.Calculate(DroneType, AerosolType, exposureTime)
├─ 更新 drone.HP -= damage
├─ 更新 drone.DamageStageNormal → EngineAnomaly → AttitudeLoss → Destroyed
└─ HP ≤ 0 → EventQueue.Enqueue(DroneDestroyed)
4. 【毁伤判定】
FOR EACH DroneEntity × CloudEntity
├─ 无人机坐标 ∈ 云团有效范围?
├─ 是 → IDamageModel.CalculateDamage()
├─ drone.HP -= damage
└─ HP ≤ 0 → 触发 OnDroneDestroyed
7. 【无人机移动】
5. 【无人机移动】
FOR EACH 存活 DroneEntity
├─ 沿航路点线性插值移动
├─ 实际位移 += 风速矢量 × deltaTime
├─ 到达航路点 → EventQueue.Enqueue(WaypointReached)
├─ 到达最后一个航路点 → EventQueue.Enqueue(DroneReachedTarget)
└─ 编队/蜂群模式决定集群排列
├─ 沿航路点线性插值
├─ 风偏影响
└─ 到达终点 → 触发 OnDroneReachedTarget
8. 【管控区域判定】★NEW
6. 【平台冷却】
FOR EACH PlatformEntityCooldown -= dt
7. 【管控区域判定】
FOR EACH 存活 DroneEntity
├─ 无人机坐标 ∈ 任一 ControlZone 多边形体积?
└─ 是 → EventQueue.Enqueue(ZoneIntruded) → 标记该无人机任务失败
├─ Point-in-Polygon 判定
└─ 侵入 → 触发 OnZoneIntruded
8. 【结束判定】
所有无人机 Status ≠ Flying → 触发 OnSimulationEnded
9. 【结束判定】
├─ 所有无人机 (被摧毁 OR 到达目标 OR 侵入管控区) → SimulationEnd
@ -694,9 +682,9 @@ Unity 渲染毁伤效果(尾焰异常、姿态失控、坠落)
- 粒子系统参数(半径、透明度、颜色 → 输出到 StateData
行为(委托第三方 DLL
- 扩散膨胀:DLL.Dispersion.Update(deltaTime, 环境参数, 释放参数)
- 扩散膨胀:GaussianPuffDispersion.Tick()(三阶段)
- 消散计时
- 毁伤判定:DLL.DamageModel.Calculate(DroneType, AerosolType, exposureTime)
- 毁伤判定:IDamageModel.CalculateDamage()(三种机制自主实现)
```
---