docs: 更新对接文档 V1.4,同步实体属性变更
- 事件示例:cloud.Dispersion.Center → cloud.PosX/Y/Z, cloud.Radius - API 列表:新增 Platforms 访问 - 新增 EntitySnapshot 字段文档(VelX/Y/Z) - 新增实体属性速查表(所有 5 种实体) - 测试状态更新:243 测试 9 秒全部通过 - Unity 脚本同步更新
This commit is contained in:
parent
3bb6e7a091
commit
e250093a16
@ -1,7 +1,7 @@
|
|||||||
# 后端对接文档(Unity 前端)
|
# 后端对接文档(Unity 前端)
|
||||||
|
|
||||||
> **版本**:V1.3
|
> **版本**:V1.4
|
||||||
> **日期**:2026-06-15
|
> **日期**:2026-06-17
|
||||||
> **Unity 版本**:2022.3.62f3c1
|
> **Unity 版本**:2022.3.62f3c1
|
||||||
|
|
||||||
---
|
---
|
||||||
@ -60,7 +60,7 @@ runner.Engine.TimeScale = 4f; // 加速
|
|||||||
|
|
||||||
// 订阅事件
|
// 订阅事件
|
||||||
runner.Engine.OnMunitionLaunched += m => Instantiate(shellPrefab, ToVector3(m.PosX, m.PosY, m.PosZ));
|
runner.Engine.OnMunitionLaunched += m => Instantiate(shellPrefab, ToVector3(m.PosX, m.PosY, m.PosZ));
|
||||||
runner.Engine.OnCloudGenerated += c => SpawnCloud(c.Dispersion.Center, c.Dispersion.Radius);
|
runner.Engine.OnCloudGenerated += c => SpawnCloud(c.PosX, c.PosY, c.PosZ, c.Radius);
|
||||||
runner.Engine.OnDroneDestroyed += d => PlayExplosion(d.PosX, d.PosY, d.PosZ);
|
runner.Engine.OnDroneDestroyed += d => PlayExplosion(d.PosX, d.PosY, d.PosZ);
|
||||||
runner.Engine.OnTargetDetected += (d, det) => ShowDetectionMark(d.PosX, d.PosY, d.PosZ);
|
runner.Engine.OnTargetDetected += (d, det) => ShowDetectionMark(d.PosX, d.PosY, d.PosZ);
|
||||||
runner.Engine.OnDroneReachedTarget += d => ShowReached(d.PosX, d.PosY, d.PosZ);
|
runner.Engine.OnDroneReachedTarget += d => ShowReached(d.PosX, d.PosY, d.PosZ);
|
||||||
@ -132,7 +132,7 @@ var runner = GetComponent<SimulationRunner>();
|
|||||||
runner.Engine.SetFireSchedule(fireEvents); // 从推荐方案取
|
runner.Engine.SetFireSchedule(fireEvents); // 从推荐方案取
|
||||||
runner.LoadAndStart(taskId);
|
runner.LoadAndStart(taskId);
|
||||||
runner.Engine.TimeScale = 4f;
|
runner.Engine.TimeScale = 4f;
|
||||||
runner.Engine.State / Drones / Clouds / Munitions / DetectionEntities / Events
|
runner.Engine.State / Drones / Clouds / Munitions / Platforms / DetectionEntities / Events
|
||||||
runner.Stop();
|
runner.Stop();
|
||||||
```
|
```
|
||||||
|
|
||||||
@ -155,6 +155,32 @@ replay.LoadReplay(taskId);
|
|||||||
// replay.TotalFrames / replay.GetFrame(frameIndex)
|
// replay.TotalFrames / replay.GetFrame(frameIndex)
|
||||||
```
|
```
|
||||||
|
|
||||||
|
### EntitySnapshot(每帧推送)
|
||||||
|
|
||||||
|
| 字段 | 类型 | 说明 |
|
||||||
|
|------|------|------|
|
||||||
|
| `EntityId` | string | 实体唯一 ID |
|
||||||
|
| `EntityType` | enum | Drone/Platform/Munition/Cloud/DetectionEquip |
|
||||||
|
| `PosX/Y/Z` | float | 三维位置 |
|
||||||
|
| `VelX/Y/Z` | float | 瞬时速度 (m/s) |
|
||||||
|
| `Hp` | float | 无人机血量 (0~1) |
|
||||||
|
| `DamageStage` | int | 损伤阶段 (0~N) |
|
||||||
|
| `PlatformStateStr` | string | 平台状态 (Idle/FlyingToTarget/ReadyToRelease) |
|
||||||
|
| `CloudRadius` | float | 云团有效半径 |
|
||||||
|
| `CloudOpacity` | float | 云团不透明度 (0~1) |
|
||||||
|
| `CloudPhase` | int | 云团扩散阶段 (1/2/3) |
|
||||||
|
| `CloudElapsed` | float | 云团已存在时间 (s) |
|
||||||
|
|
||||||
|
### 实体属性(直接访问)
|
||||||
|
|
||||||
|
| 实体 | 关键属性 |
|
||||||
|
|------|------|
|
||||||
|
| **DroneEntity** | Id, PosX/Y/Z, Hp, Status, ExposureTime, TargetType, PowerType, Wingspan, CruiseSpeed, Route, TraveledArc, TotalArc, Progress |
|
||||||
|
| **CloudEntity** | Id, PosX/Y/Z, Radius, Density, Phase, Elapsed, IsDissipated, AerosolType |
|
||||||
|
| **MunitionEntity** | Id, PosX/Y/Z, Velocity, StartX/Y/Z, LaunchTime, ElapsedTime, LaunchAngle, Azimuth, MuzzleVelocity, FlightDuration, TargetX/Y/Z, ReleaseAltitude, HasArrived |
|
||||||
|
| **PlatformEntity** | Id, PosX/Y/Z, CurrentVelocity, State, MunitionCount, Cooldown, MuzzleVelocity, CruiseSpeed, ReleaseAltitude, TargetX/Y/Z, FlightDistance |
|
||||||
|
| **DetectionEntity** | Id, PosX/Y/Z, Source, IsInRange(), IsDetected() |
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
## 五、默认数据
|
## 五、默认数据
|
||||||
@ -201,4 +227,4 @@ dotnet publish -c Release -o ../../unity_plugins
|
|||||||
| 实体事件映射 | `docs/design/technical/仿真器实体与事件映射.md` |
|
| 实体事件映射 | `docs/design/technical/仿真器实体与事件映射.md` |
|
||||||
| 任务跟踪 | `docs/implementation/tasks/实施计划与任务跟踪.md` |
|
| 任务跟踪 | `docs/implementation/tasks/实施计划与任务跟踪.md` |
|
||||||
| 测试报告 | `test/reports/`(每次集成测试自动生成) |
|
| 测试报告 | `test/reports/`(每次集成测试自动生成) |
|
||||||
| 测试状态 | **191 测试,24 秒(集成)** |
|
| 测试状态 | **243 测试,9 秒(全部通过)** |
|
||||||
|
|||||||
Binary file not shown.
@ -92,12 +92,11 @@ namespace CounterDrone.Unity
|
|||||||
{
|
{
|
||||||
if (!_clouds.ContainsKey(cloud.Id))
|
if (!_clouds.ContainsKey(cloud.Id))
|
||||||
{
|
{
|
||||||
var pos = new UVector3(cloud.Dispersion.Center.X, cloud.Dispersion.Center.Y, cloud.Dispersion.Center.Z);
|
var pos = new UVector3(cloud.PosX, cloud.PosY, cloud.PosZ);
|
||||||
var prefab = _cloudPrefab != null ? _cloudPrefab : GameObject.CreatePrimitive(PrimitiveType.Sphere);
|
var prefab = _cloudPrefab != null ? _cloudPrefab : GameObject.CreatePrimitive(PrimitiveType.Sphere);
|
||||||
var go = Instantiate(prefab, pos, Quaternion.identity);
|
var go = Instantiate(prefab, pos, Quaternion.identity);
|
||||||
go.name = cloud.Id;
|
go.name = cloud.Id;
|
||||||
float r = cloud.Dispersion.Radius;
|
go.transform.localScale = UVector3.one * cloud.Radius;
|
||||||
go.transform.localScale = UVector3.one * r;
|
|
||||||
var mat = go.GetComponent<Renderer>().material;
|
var mat = go.GetComponent<Renderer>().material;
|
||||||
mat.color = new Color(1, 0, 0, 0.3f);
|
mat.color = new Color(1, 0, 0, 0.3f);
|
||||||
_clouds[cloud.Id] = go;
|
_clouds[cloud.Id] = go;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user