Home > @esengine/ecs-framework-monorepo > EntityManager
EntityManager class
实体管理器
提供统一的实体管理和查询机制,支持高效的实体操作。 包括实体的创建、销毁、查询和索引管理功能。
Signature:
typescript
export declare class EntityManager
Example
typescript
const entityManager = new EntityManager();
// 创建实体
const player = entityManager.createEntity("Player");
// 查询实体
const playerEntity = entityManager.getEntityByName("Player");
// 复杂查询
const results = entityManager.query()
.withAll(HealthComponent, PositionComponent)
.active()
.execute();
Constructors
Constructor | Modifiers | Description |
---|---|---|
创建实体管理器实例 初始化内部数据结构和ID分配器。 |
Properties
Property | Modifiers | Type | Description |
---|---|---|---|
| number | 获取激活状态的实体数量 只计算同时满足激活状态且未被销毁的实体。 | |
| number | 获取实体总数 | |
| 获取事件总线实例 允许外部代码监听和发射ECS相关事件。 |
Methods
Method | Modifiers | Description |
---|---|---|
批量创建实体 为了优化大量实体创建的性能,批量处理索引更新和事件发射。 适用于需要创建大量实体的场景,如子弹、粒子等。 | ||
创建新实体 分配唯一ID并将实体添加到管理系统中,同时更新相关索引。 | ||
销毁实体 支持通过实体对象、名称或ID来销毁实体。 会清理所有相关索引并回收ID。 | ||
获取所有实体 返回当前管理的所有实体的副本数组。 | ||
根据标签获取实体列表 返回所有具有指定标签的实体。 | ||
获取包含指定组件的所有实体 遍历所有实体,查找包含指定组件类型的实体。 | ||
根据ID获取实体 支持字符串和数字类型的ID。 | ||
根据名称获取实体 如果存在多个同名实体,返回第一个找到的实体。 | ||
获取性能优化统计信息 | ||
标记实体组件已修改 | ||
创建查询构建器 返回一个新的查询构建器实例,用于构建复杂的实体查询。 | ||
使用组件索引进行多组件查询 |