using Arch.Core; using GFramework.Core.Abstractions.ecs; using GFramework.Core.system; namespace GFramework.Core.ecs; /// /// ECS系统基类,继承自AbstractSystem以集成到现有架构 /// public abstract class EcsSystemBase : AbstractSystem, IEcsSystem { /// /// ECS世界实例 /// protected EcsWorld EcsWorld { get; private set; } = null!; /// /// 快捷访问内部World /// protected World World => EcsWorld.InternalWorld; /// /// 系统优先级,默认为0 /// public virtual int Priority => 0; /// /// 每帧更新(子类实现) /// public abstract void Update(float deltaTime); /// /// 系统初始化 /// protected override void OnInit() { EcsWorld = Context.GetService() ?? throw new InvalidOperationException( "EcsWorld not found in context. Make sure ECS is properly initialized."); OnEcsInit(); } /// /// 系统销毁 /// protected override void OnDestroy() { OnEcsDestroy(); } /// /// ECS系统初始化(子类实现) /// protected abstract void OnEcsInit(); /// /// ECS系统销毁(子类可选实现) /// protected virtual void OnEcsDestroy() { } }