3.5 KiB
3.5 KiB
仿真器实体与事件映射
实体总览
| 实体 | 类 | 生命周期 | 主要属性 |
|---|---|---|---|
| 无人机 | DroneEntity |
仿真全程 | Pos, Hp, Status, Route, ExposureTime |
| 发射平台 | PlatformEntity |
仿真全程 | Pos, PlatformType, State(Idle/FlyingToTarget/ReadyToRelease), AerosolType, MunitionCount, Cooldown, CruiseSpeed, MuzzleVelocity, CurrentVelocity |
| 飞行弹药 | MunitionEntity |
发射→到达释放高度 | Pos, LaunchMode(AirDrop/GroundArtillery), Target, HasArrived, 空基载机速度矢量 |
| 气溶胶云团 | CloudEntity |
弹药到达→消散 | Center, Radius, CoreDensity, IsDissipated |
| 管控区域 | ControlZoneEntity |
仿真全程 | Vertices, Min/MaxAltitude |
事件一览
| 事件 | 触发条件 | 参数 | Unity 典型响应 |
|---|---|---|---|
OnMunitionLaunched |
发射计划时间到达 + 平台就绪 | MunitionEntity |
生成炮弹模型,播放发射动画 |
OnCloudGenerated |
弹药到达释放高度 | CloudEntity |
生成粒子系统,初始半径+颜色 |
OnDroneDestroyed |
毁伤判定 HP ≤ 0 | DroneEntity |
播放爆炸/坠毁动画 |
OnDroneReachedTarget |
到达最后航路点 | DroneEntity |
显示"目标抵达"提示 |
OnZoneIntruded |
无人机进入管控区 | DroneEntity, ControlZoneEntity |
红色警报 |
OnSimulationEnded |
所有无人机状态 ≠ Flying | 无 | 显示结果面板,触发报告生成 |
实体 × 事件 矩阵
| MunitionLaunched | CloudGenerated | DroneDestroyed | ReachedTarget | ZoneIntruded | SimEnded | |
|---|---|---|---|---|---|---|
| DroneEntity | ✅ | ✅ | ✅ | |||
| PlatformEntity | ✅ | |||||
| MunitionEntity | ✅ | |||||
| CloudEntity | ✅ | |||||
| ControlZoneEntity | ✅ | |||||
| 全局 | ✅ |
数据流
想定配置(EquipmentDeployment + TargetConfig + RoutePlan + CombatScene)
│
▼
SimulationEngine.Initialize()
│
├─ BuildFireUnits() → List<FireUnit>
├─ BuildDroneGroups() → List<DroneGroup>
│
▼
IDefensePlanner.Plan(fireUnits, threats, scene)
│
├─ 五步流水线 → FireSchedule(发射计划)
│
▼
SimulationEngine.Tick()
│
├─ 【地基】时间到达 → PlatformEntity.Release() → MunitionEntity 创建
│ └─ OnMunitionLaunched ──→ Unity: 炮弹 3D 模型
│
├─ 【空基】时间到达 → PlatformEntity.CommandFlyTo() → 飞行中 → CanRelease
│ └─ Release() → MunitionEntity(AirDrop, 载机速度) → OnMunitionLaunched
│ └─ OnMunitionLaunched ──→ Unity: 空基投放
│
├─ MunitionEntity 飞行 → 到达释放高度
│ ├─ 地基:抛物线弹道(Kinematics.ParabolicPosition)
│ └─ 空基:载机速度 + 重力(Kinematics.AirDropPosition)
│ │
│ ├─ CloudEntity 创建
│ ├─ OnCloudGenerated ──→ Unity: 粒子系统
│ └─ 扩散 → 毁伤判定
│ ├─ DroneEntity.Hp -= dmg
│ └─ HP≤0 → OnDroneDestroyed ──→ Unity: 爆炸动画
│
├─ DroneEntity.Update() → 到达终点
│ └─ OnDroneReachedTarget ──→ Unity: 抵达提示
│
├─ ControlZone.ContainsPoint()
│ └─ OnZoneIntruded ──→ Unity: 红色警报
│
└─ All drones done
└─ OnSimulationEnded ──→ Unity: 结果面板 + 报告生成