项目背景
在大型开放世界项目里,传统 MonoBehaviour 更新链路很容易成为帧率瓶颈。本文将记录一次把刷怪与寻路迁移到 DOTS 的实践。
技术选型
- Entities:数据布局与查询
- Jobs + Burst:并行计算
- 保留少量托管层:编辑器工具与调试面板
核心方案
把「生成 → 寻路 → 移动」拆成独立 System,用 Component 描述状态,避免跨对象引用。
ts
export function createRenderer() {
const cache = new Map<string, unknown>();
return {
get(key: string) {
return cache.get(key);
},
set(key: string, value: unknown) {
cache.set(key, value);
},
};
}总结
DOTS 适合热点路径,不适合一上来全量重写。先量热点、再迁移,收益更稳定。