type
status
date
slug
summary
tags
category
icon
password
comment
DOTS 补充知识点
ECS烘焙注意

这里我们使用空物体左右角色的父物体时,我们需要注意的是空物体依然不会被烘焙
TransformUsageFlags 参数总览
参数名 | 是否添加Transform组件 | 描述用途 | 适用场景举例 | 注意事项 |
None | ❌ 否 | 不使用 Transform 系统。不生成任何与 Transform 相关的组件 | 纯数据实体,不参与位置、旋转、缩放等 | ㅤ |
Renderable | ✅ 是 | 添加最小的 Transform 数据,仅用于渲染。添加 LocalToWorld 组件 | 静态可渲染物体,位置不变 | ㅤ |
Dynamic | ✅ 是 | 完整的 Transform 控制,添加如 LocalTransform、LocalToWorld、Parent 等 | 可移动/旋转的对象,如玩家、敌人 | x,y,z轴的值只能为一致的 |
WorldSpace | ✅ 是 | 只使用 LocalToWorld,用于设置世界空间位置,不含层级关系和局部变换 | 摄像机、UI锚点、特效锚点等 | ㅤ |
ManualOverride (不常用) | ❌ 否(或手动) | 表示用户将手动设置 Transform 的同步,不使用默认系统 | 特殊控制需求,如自定义同步逻辑 | ㅤ |
NonUniformScale | ✅ 是 | 不均匀缩放 | UI,血条,进度条 | ㅤ |
系统窗口

系统窗口有我们所有的系统,我们可以查看系统控制的实体数量
Allocator 枚举参数详解
参数名 | 生命周期 / 释放时间 | 是否需要手动释放 | 适用场景举例 |
Allocator.Temp | 仅当前帧有效 | ✅ 是 | 临时使用,例如在一帧中使用 NativeArray 临时遍历 |
Allocator.TempJob | 当前 Job 执行周期内有效 | ✅ 是 | 在 Job 中创建临时数据 |
Allocator.Persistent | 程序或系统运行期间持久存在 | ✅ 是 | 长期存储,如系统变量、跨帧缓存、组件缓存等 |
Allocator.None | 表示没有分配(特殊用途) | ❌ 否 | 很少用到,通常内部或用于空数组 |
With 系列函数对比
函数名 | 功能说明 | 示例用途 |
WithAll<T>() | 实体 必须包含所有指定组件 | 查询具有 Translation 和 MoveSpeed 的所有实体 |
WithAny<T1, T2>() | 实体 包含任意一个指定组件 | 查询具有 Health 或 Mana 的实体 |
WithNone<T>() | 实体 不能包含指定组件 | 查询不包含 DeadTag 的实体 |
WithDisabled<T>() | 实体包含 T 组件,且该组件当前处于“禁用状态” | 仅处理禁用的 NavAgent |
WithAbsent<T>() (罕用) | 实体当前没有该组件(已移除) | 主要用于对比系统执行过程中的组件增删变化 |
WithPresent<T>() | 他只关心组件是否存在,是否启用并不关心 | ㅤ |
Debug技巧
在使用Burst编译器的时候,我们不能从Console窗口直接点击错误跳转到对应的代码行,我们可以暂时关闭Burst编译器来进行Debug。
- Author:qqssdda
- URL:blog.sadaharu.top/article/23dd0a21-aa6d-8066-a4aa-f0ebf42197a8
- Copyright:All articles in this blog, except for special statements, adopt BY-NC-SA agreement. Please indicate the source!

