架构文档引擎流程更新: 8阶段改FireSchedule+事件驱动, 去掉EventQueue/第三方DLL描述
This commit is contained in:
parent
31291004ae
commit
523703be2f
@ -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.DamageStage(Normal → 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 PlatformEntity:Cooldown -= 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()(三种机制自主实现)
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
Loading…
Reference in New Issue
Block a user