@ecs.registerSystem() export class SkillCollisionSystem extends ecs.System { filter(): ecs.IMatcher { return ecs.allOf(SkillEffectComp, ColliderComp); } update(skills: ecs.Entity[]) { skills.forEach(skill => { const collider = skill.get(ColliderComp); const collisionResult = skill.get(CollisionResultComp) || skill.add(CollisionResultComp); // 检测碰撞(伪代码,实际使用物理引擎检测) const hitHeroes = PhysicsSystem.overlap(collider.bounds, 'Hero'); // 转换为ECS实体 collisionResult.targets = hitHeroes.map(h => h.entity); }); } }