林知远
返回

基于 Unity DOTS 的 ECS 架构实践

林知远林知远··1 分钟阅读

项目背景

在大型开放世界项目里,传统 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 适合热点路径,不适合一上来全量重写。先量热点、再迁移,收益更稳定。

基于 Unity DOTS 的 ECS 架构实践 · DevLog