Commit Graph

5 Commits

Author SHA1 Message Date
SepComet 76094b711b fix 2
1. MaxTargets 现在严格生效(包含玩家候选)
  - 玩家先被加入候选后,会计入 selectedCount,达到上限后不再继续查敌人桶。
2. UseSimulationMovement/UseJobSimulation 战斗中不生效
  - 在 SimulationWorld 的 setter 中增加 Battle 状态保护:战斗中调用会被忽略并打 warning。
  - 在 ProcedureGame 暴露当前状态类型,供 SimulationWorld 判断。
3. AOE 结算不再依赖结算时刻的 Weapon.IsAttacking
  - 在 AOE query 入队时快照 source 活跃状态(武器用 IsAttacking)。
  - Query 数据结构增加 SourceWasActiveAtQueryTime。
  - 结算时使用该快照判定,并通过 AIUtility.PerformCollision(..., ignoreRuntimeState: true) 避免被实时状态误伤。
2026-02-23 11:48:05 +08:00
SepComet 688fefe848 fix 1
1. 修复投射物闪避口径(使用 Value,与全局伤害逻辑一致)
  - 将 SimulationWorld 内投射物伤害计算改为直接复用 AIUtility.CalcDamageHP(...)。
  - 删除了 SimulationWorld 里那套重复且使用 dodgeStat.Percent 的私有计算函数,避免再次分叉。
2. 修复目标选择索引“重建过于激进”
  - 去掉了 Job Tick 末尾的“每帧强制 MarkDirty + Build”。
  - 改为在 Job 输出回写时,只有敌人 XZ 坐标发生变化才标记 dirty。
  - 空间索引构建条件改为“仅 dirty 时重建”,不再因跨帧自动重建。
2026-02-23 11:21:35 +08:00
SepComet 1a45b513f2 Checkpoint 8
1. 统一调度收口为单点 Complete
2. 移除 Job 内部 Complete(),改为返回 JobHandle
3. 修复调度后 NativeList 安全冲突(关键)
  - 将 PrepareEnemyJobOutputBuffer/PrepareProjectileJobOutputBuffer/PrepareEnemySeparationJobBuffers 前置到 BuildInput
  - 互斥候选统计改为读取 _enemyJobInputs,不再在 Complete 前读取 _enemyJobOutputs
4. 新增 CP8 profiler markers
5. 新增回归用例(验证使用最新敌人移动结果构建碰撞候选)
2026-02-23 10:53:15 +08:00
SepComet e6d722ee1d Checkpoint 7
1. Job 通道数据结构改为 Unity.Mathematics 类型(float3/quaternion),并保留 Simulation 主数据结构不变。
2. 更新了通道边界转换函数:进入 Job 通道时转为数学类型,回写 Simulation 时转回 Vector3/Quaternion。
3. 敌人 Job 热路径去掉 Vector3/Quaternion 中间态,核心执行统一 math.* + float3/quaternion。
4. 投射物移动 Job 热路径同样统一为数学类型计算与输出。
5. 新增 Burst 开关 A/B 一致性回归测试(EditMode + PlayMode),并补了反射入口校验。
2026-02-23 10:29:47 +08:00
SepComet f0abf78128 Checkpoint 5 & Checkpoint 6 2026-02-22 22:00:43 +08:00