返回调度中心
Workflow 01 / Authority

权限确立:单例管理

EngineSubsystem 初始化时序与内核主权锁定

Sequence / 引擎子系统初始化时序
            sequenceDiagram
                participant E as Unreal Engine
                participant SUB as LiteRtLmSubsystem
                participant PL as Plugin Wrapper
                
                E->>SUB: 1. Initialize(Collection)
                activate SUB
                SUB->>PL: 2. 尝试绑定 DLL 导出符号
                PL-->>SUB: 3. 返回动态链接句柄
                SUB->>SUB: 4. 建立全局 ModelHandle 置空状态
                deactivate SUB
                Note over E, SUB: 子系统进入 Ready 状态 (单例锁定)
            
01 / 概念深度:为什么使用 EngineSubsystem?

本地 AI 模型加载涉及物理层级的显存锁定。如果多个 Actor 重复加载模型,会导致显存瞬间溢出。

主权唯一性 (Singleton Authority)

通过 EngineSubsystem,插件确保全引擎生命周期内只有一个 EngineHandle。无论有多少个 NPC,都共用同一个推理物理实例。

跨关卡存续 (Persistence)

模型一旦在子系统中 LoadModel,即使在 OpenLevel 切换地图时,显存占位也不会丢失。这避免了地图切换时冗长的“AI 预热”时间。

02 / 源码实战 Demo (C++)

业务层如何安全地获取子系统主权:

// 1. 在业务层安全获取单例句柄
ULiteRtLmSubsystem* Subsystem = GEngine->GetEngineSubsystem<ULiteRtLmSubsystem>();

// 2. 查询内核主权状态
if (Subsystem && Subsystem->IsModelLoaded()) {
    // 物理引擎已锁定显存,可直接进行 Session 操作
    void* MySession = Subsystem->GetOrCreateSession(this);
}