EQS 的性能与常见坑
EQS 用不好会从"智能利器"变成"性能黑洞"。这一节给出控制成本的清单。
性能成本来自哪里
| 来源 | 说明 | 控制手段 |
|---|---|---|
| 候选点数量 | 乘在所有测试上 | 设上限、加大间距、缩小半径 |
| Trace 测试 | 每点一次射线检测 | 过滤先剔除大多数点再 Trace |
| Path 测试 | 每点一次寻路 | 慎用;做不到必要时用直线距离近似 |
| 查询频率 | 每 AI 多久跑一次 | 缓存与降频(2~5 秒一次) |
经验法则:单次查询的候选点控制在 100~200 以内;有 Trace 的查询先过滤。一次合格的查询应该在 1ms 内完成。
五个常见坑
| 坑 | 表现 | 解法 |
|---|---|---|
| 忘了设数量上限 | 偶发卡顿(生成器随半径指数扩展点数) | 生成器属性里勾选并设置 MaxPoints |
| 过滤与权重用反 | 要么没候选点、要么站位平庸 | 必要条件用过滤 |
| Path 测试滥用 | AI 决策延迟明显 | 用 Distance 近似或减少频率 |
| 结果不缓存 | 每帧重查 | 查询结果写黑板 + 使用期标记(如 3 秒内不重查) |
| 查询在编辑器正常打包失效 | 配置依赖未烘焙数据 | 打包后实测(第 1 章的教训) |
EQS 与智能对象(Smart Objects)的配合
EQS 找"几何上最好的点",但有些位置本质是"设计出来的点"(可坐的椅子、可操作的炮台)。这类用智能对象更合适:智能对象提供点 + 关联的玩法标签,AI 按标签匹配。两者不冲突:EQS 用于开放空间的战术决策,智能对象用于场景设计的交互点。
智能对象是另一套体系,感兴趣可从官方的智能对象文档入手,本书不再展开。
一句话总结 EQS
它是 AI 的"空间推理":把复杂的站位偏好变成可调、可视、可缓存的数据。 用好它,AI 的战术感会立刻上一个台阶;但务必记住它是"每隔几秒想一次"的工具,不是每帧的实时系统。
