Feature/editor optimization (#251)
* refactor: 编辑器/运行时架构拆分与构建系统升级 * feat(core): 层级系统重构与UI变换矩阵修复 * refactor: 移除 ecs-components 聚合包并修复跨包组件查找问题 * fix(physics): 修复跨包组件类引用问题 * feat: 统一运行时架构与浏览器运行支持 * feat(asset): 实现浏览器运行时资产加载系统 * fix: 修复文档、CodeQL安全问题和CI类型检查错误 * fix: 修复文档、CodeQL安全问题和CI类型检查错误 * fix: 修复文档、CodeQL安全问题、CI类型检查和测试错误 * test: 补齐核心模块测试用例,修复CI构建配置 * fix: 修复测试用例中的类型错误和断言问题 * fix: 修复 turbo build:npm 任务的依赖顺序问题 * fix: 修复 CI 构建错误并优化构建性能
This commit is contained in:
56
packages/core/src/ECS/Components/HierarchyComponent.ts
Normal file
56
packages/core/src/ECS/Components/HierarchyComponent.ts
Normal file
@@ -0,0 +1,56 @@
|
||||
import { Component } from '../Component';
|
||||
import { ECSComponent } from '../Decorators';
|
||||
import { Serializable, Serialize } from '../Serialization/SerializationDecorators';
|
||||
|
||||
/**
|
||||
* 层级关系组件 - 用于建立实体间的父子关系
|
||||
*
|
||||
* 只有需要层级关系的实体才添加此组件,遵循 ECS 组合原则。
|
||||
* 层级操作应通过 HierarchySystem 进行,而非直接修改此组件。
|
||||
*
|
||||
* @example
|
||||
* ```typescript
|
||||
* // 通过 HierarchySystem 设置父子关系
|
||||
* const hierarchySystem = scene.getSystem(HierarchySystem);
|
||||
* hierarchySystem.setParent(childEntity, parentEntity);
|
||||
*
|
||||
* // 查询层级信息
|
||||
* const parent = hierarchySystem.getParent(entity);
|
||||
* const children = hierarchySystem.getChildren(entity);
|
||||
* ```
|
||||
*/
|
||||
@ECSComponent('Hierarchy')
|
||||
@Serializable({ version: 1, typeId: 'Hierarchy' })
|
||||
export class HierarchyComponent extends Component {
|
||||
/**
|
||||
* 父实体 ID
|
||||
* null 表示根实体(无父级)
|
||||
*/
|
||||
@Serialize()
|
||||
public parentId: number | null = null;
|
||||
|
||||
/**
|
||||
* 子实体 ID 列表
|
||||
* 顺序即为子级的排列顺序
|
||||
*/
|
||||
@Serialize()
|
||||
public childIds: number[] = [];
|
||||
|
||||
/**
|
||||
* 在层级中的深度
|
||||
* 根实体深度为 0,由 HierarchySystem 维护
|
||||
*/
|
||||
public depth: number = 0;
|
||||
|
||||
/**
|
||||
* 层级中是否激活
|
||||
* 考虑所有祖先的激活状态,由 HierarchySystem 维护
|
||||
*/
|
||||
public bActiveInHierarchy: boolean = true;
|
||||
|
||||
/**
|
||||
* 层级缓存是否脏
|
||||
* 用于优化缓存更新
|
||||
*/
|
||||
public bCacheDirty: boolean = true;
|
||||
}
|
||||
1
packages/core/src/ECS/Components/index.ts
Normal file
1
packages/core/src/ECS/Components/index.ts
Normal file
@@ -0,0 +1 @@
|
||||
export { HierarchyComponent } from './HierarchyComponent';
|
||||
Reference in New Issue
Block a user