Cleanup 1
This commit is contained in:
@@ -40,11 +40,11 @@
|
||||
- 当前主瓶颈明确:`MoveSeperation` 是绝对热点(约 `43%~47%` 帧占比),P2 优先并行化该阶段。
|
||||
- 评估口径可复现:Android 端受 `60 fps` 上限影响,性能判断以 CPU `ms` 为准。
|
||||
|
||||
## 回滚开关说明
|
||||
- 开关字段:`SimulationWorld._useSimulationMovement`(序列化私有字段)
|
||||
- 对外接口:`UseSimulationMovement` / `SetUseSimulationMovement(bool)`
|
||||
- 回滚方式:将开关置 `false`,敌人立即回退到旧 `MovementComponent` 更新路径。
|
||||
- 验证建议:同场景同刷怪参数下执行 A/B 对比,确认行为一致与性能差异。
|
||||
## 路线收敛说明
|
||||
- `SimulationWorld.Tick(...)` 已收敛为战斗内唯一仿真执行入口。
|
||||
- `UseSimulationMovement` 不再承担运行时双路径路由职责,不应再作为回滚到旧 `MovementComponent` 路径的开关理解。
|
||||
- 敌人、投射物与目标查询的运行时行为统一以 `SimulationWorld` 主容器和 Burst Job 管线为准。
|
||||
- 验证建议:聚焦单一路径下的敌人移动、投射物生命周期、最近敌查询和 area hit 结果,而不是做旧路径 A/B 对照。
|
||||
|
||||
## P2 交接建议
|
||||
- Job/Burst 第一优先级:`MoveSeperation` 阶段并行化。
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
目标:
|
||||
- 固化压测口径(0.5k/1k/1.5k/2k)
|
||||
- 给出回归验证结论
|
||||
- 给出开关/回滚策略
|
||||
- 给出单一路径架构下的验证策略
|
||||
- 给出最终验收判定(通过/不通过)
|
||||
|
||||
## 2. 验收标准(对齐 TodoList)
|
||||
@@ -23,21 +23,17 @@
|
||||
- Profiler 口径:以 CPU `ms` 为主,`fps` 仅作辅助(Android 端存在 60fps 上限)
|
||||
- Profiler 配置:`Call Stacks = Off`
|
||||
|
||||
## 4. P2 开关与回滚策略
|
||||
## 4. P2 路线收敛说明
|
||||
|
||||
### 4.1 运行开关
|
||||
- `UseSimulationMovement`
|
||||
- `UseJobSimulation`
|
||||
- `UseBurstJobs`
|
||||
### 4.1 当前运行时语义
|
||||
- `SimulationWorld.Tick(...)` 是战斗内唯一仿真执行入口。
|
||||
- 敌人移动、敌人分离、投射物推进、碰撞 broad-phase、最近敌查询统一走 Burst/Job 管线。
|
||||
- 文档中的 `UseJobSimulation`、`UseBurstJobs` 当前没有代码实现,不应再作为实际回滚方案描述。
|
||||
|
||||
### 4.2 生效时机约束
|
||||
- `UseSimulationMovement` / `UseJobSimulation`:战斗内不支持热切换,需在 Battle 外修改后生效。
|
||||
- `UseBurstJobs`:可切换,但建议仅用于战斗外 A/B。
|
||||
|
||||
### 4.3 回滚策略(建议)
|
||||
1. 切回非 Job 路径:`UseJobSimulation = false`
|
||||
2. 若仍异常,切回旧移动:`UseSimulationMovement = false`
|
||||
3. 保留 `UseBurstJobs` 仅在 Job 路径 A/B 对照
|
||||
### 4.2 验证重点
|
||||
1. 验证单一路径下的敌人移动、投射物生命周期、碰撞候选与 area hit 结果。
|
||||
2. 验证 `Battle -> LevelUp -> Shop -> Battle` 与清场流程不会留下脏的仿真状态。
|
||||
3. 验证 Debug/测试表面不再暴露旧 solver 或双路径开关语义。
|
||||
|
||||
## 5. 回归验证(Checkpoint 9)
|
||||
|
||||
@@ -57,7 +53,7 @@
|
||||
#### 用例 1:10 分钟连续战斗
|
||||
- 执行时间:待填
|
||||
- 场景/波次参数:待填
|
||||
- 运行开关:`UseSimulationMovement = true`,`UseJobSimulation = true`,`UseBurstJobs = true`
|
||||
- 运行路径:`SimulationWorld` Burst/Job 单一路径
|
||||
- 结果:待填
|
||||
- 日志/录屏:待填
|
||||
- 备注:待填
|
||||
@@ -66,7 +62,7 @@
|
||||
- 执行时间:已执行,见 `Logs/editmode-test-results.xml`
|
||||
- 操作步骤:由 EditMode 测试 `ProcedureGame_TransitionsBattleToLevelUpShopAndBackToBattle` 覆盖
|
||||
- 执行方式:自动化测试
|
||||
- 运行开关:`UseSimulationMovement = true`,`UseJobSimulation = true`,`UseBurstJobs = true`
|
||||
- 运行路径:`SimulationWorld` Burst/Job 单一路径
|
||||
- 结果:通过
|
||||
- 日志/录屏:`Logs/editmode-test-results.xml`
|
||||
- 备注:验证 `ProcedureGame` 可从 `Battle` 正确切换到 `LevelUp`、再到 `Shop`,并最终返回 `Battle`
|
||||
@@ -75,7 +71,7 @@
|
||||
- 执行时间:已执行,见 `Logs/editmode-test-results.xml`
|
||||
- 验证范围:掉落注册 / 更新 / 回收
|
||||
- 执行方式:自动化测试
|
||||
- 运行开关:`UseSimulationMovement = true`,`UseJobSimulation = true`,`UseBurstJobs = true`
|
||||
- 运行路径:`SimulationWorld` Burst/Job 单一路径
|
||||
- 结果:通过
|
||||
- 日志/录屏:`Logs/editmode-test-results.xml`
|
||||
- 备注:由 EditMode 测试 `PickupLifecycle_UpsertAndRemove_KeepsBindingsConsistent` 覆盖,验证掉落在 `SimulationWorld` 中的生命周期与 binding remap 正常
|
||||
|
||||
+5
-7
@@ -40,8 +40,8 @@
|
||||
- [x] Checkpoint 3:建立 Simulation 主更新入口并接入 Battle 状态
|
||||
- 在 `GameStateBattle.OnUpdate` 中增加 `SimulationWorld.Tick(...)` 调用。
|
||||
- 先只接“敌人移动/追踪”系统,其他逻辑保持原路径。
|
||||
- 增加开关(建议 `UseSimulationMovement`)用于 A/B 对比与回滚。
|
||||
- 完成标准:关闭开关与当前行为一致;开启开关后敌人仍能正常追踪玩家。
|
||||
- 路线已收敛:不再维护 `UseSimulationMovement` 作为运行时 A/B 与回滚开关。
|
||||
- 完成标准:`SimulationWorld.Tick(...)` 成为唯一执行入口,敌人仍能正常追踪玩家。
|
||||
|
||||
- [x] Checkpoint 4:迁移敌人核心移动逻辑到 Simulation(去 MonoBehaviour 核心逻辑)
|
||||
- 将 `MeleeEnemy/RemoteEnemy` 的目标追踪、移动方向、攻击距离判定迁至 Simulation。
|
||||
@@ -117,11 +117,9 @@
|
||||
- `com.unity.jobs`(已废弃并并入 `com.unity.collections`,Unity 2022.3 不再单独锁定包)
|
||||
- `com.unity.burst`
|
||||
- `com.unity.mathematics`
|
||||
- 增加 P2 运行开关(建议):
|
||||
- `UseJobSimulation`
|
||||
- `UseBurstJobs`
|
||||
- 约束:默认可一键回退到 P1.5 路径,避免全量切换导致定位困难。
|
||||
- 完成标准:Editor/Development Build 均可编译运行;关闭开关时行为与 P1.5 一致。
|
||||
- 文档中的 `UseJobSimulation` / `UseBurstJobs` 当前未落代码实现,不再作为运行时方案前提。
|
||||
- 约束:以当前 `SimulationWorld` Burst/Job 单一路径为唯一验收对象。
|
||||
- 完成标准:Editor/Development Build 均可编译运行;单一路径行为稳定。
|
||||
|
||||
- [x] Checkpoint 2:Simulation 与 Job 数据通道打通(仅建通道,不改行为)
|
||||
- 为敌人/投射物建立 Job 输入输出结构(纯数据,不含 `Transform`/托管引用)。
|
||||
|
||||
Reference in New Issue
Block a user