美文网首页
30 UE5 Subsyetem介绍

30 UE5 Subsyetem介绍

作者: 游戏开发程序员 | 来源:发表于2024-06-12 10:28 被阅读0次

Subsyetem用途

  • 生命周期受控的自动实例化类。
  • 定义了一系列自动实例化和释放的类
  • 根据父类不同,实现不同的生命周期
  • 依附依存的Outer对象(拥有者/容器)

Subsyetem类别和Outer对象

  • UEngineSubsystem - UEngine* GEngine
  • UEditorSubsystem - UEditorEngine* GEditor
  • UGameInstanceSubsystem - UGameInstance* GameInstance
  • UWorldSubsystem - UWorld* World
  • ULocalPlayerSubsystem - ULocalPlayer* LocalPlayer

Subsyetem优点

  • 无需自己写单例实现:得分系统/XX管理器等之类
  • 无需自己实现创建,销毁等逻辑
  • 避免从UGameInstance继承的子类里实现太多复杂的功能
  • 封装性更好,更方便迁移到不同项目

三种运行模式

  • 编辑器模式 打开编辑器后的运行状态
  • Runtime模式 游戏打包后的运行状态
  • PIE模式 在编辑器里点击Play后的运行状态。

生命周期和数量

  • UEngine* GEngine:1。 Editor或Runtime模式都是全局唯一,lifetime 进程启动~进程退出。
  • UEditorEngine* GEditor:1。只在编辑器下存在且全局唯一,lifetime 编辑器启动~编辑器退出。
  • UGameInstance* GameInstance:1。 lifetime 游戏启动开始~游戏退出。
  • UWorld* World:>1。lifetime 与GameMode密切相关(游戏中可切换), 在编辑器和游戏状态下有存在多个类型
  • ULocalPlayer* LocalPlayer:>1。lifetime 游戏开始~游戏退出. 也跟LocalPlayer动态创建相关.

官方子系统范例

// 外部获取
UGameInstance* GameInstance = ...;
UMyGamesStatsSubsystem * MySystem = GameInstance->GetSubsystem<UMySystem>();

    UCLASS()
    class UMyGamesStatsSubsystem : public UGameInstanceSubsystem
    {
        GENERATED_BODY()
    public:
        // Begin USubsystem
        virtual void Initialize(FSubsystemCollectionBase& Collection) override;
        virtual void Deinitialize() override;
        // End USubsystem
 
        void IncrementResourceStat();
    private:
        // All my variables
    };
image.png
  • 参看大钊的关系图


    image.png

相关文章

  • 程序打包

    关于UE5打包问题[https://www.bilibili.com/read/cv11679358] UE5 P...

  • 目录、资产命名规范

    【UE5】目录、资产命名规范[https://zhuanlan.zhihu.com/p/484119115]

  • 地理坐标转换

    关联GIS:条条道路通UE5城[https://zhuanlan.zhihu.com/p/528244402] 关...

  • 通讯

    开源篇-WebSocket搭建UE5通信桥梁[https://zhuanlan.zhihu.com/p/54621...

  • 调试

    UE4/UE5的崩溃,卡死等问题处理[https://zhuanlan.zhihu.com/p/565680732]

  • 源代码

    从零开始:编译UE5 source code[https://www.jianshu.com/p/4a6b8603...

  • UE 命名规范

    资产命名表格链接:UE5项目命名规则[https://link.zhihu.com/?target=https%3...

  • UE5蓝图-动态创建和查找模型

    UE5蓝图-动态创建和查找模型,并控制其显隐性 蓝图 BP_RedEarth 蓝图 BP_CreateRedEar...

  • 【UE5】Nanite解析

    Epic外放的两大特性Nanite跟Lumen,构成了UE版本升级的基石,关于这两大技术,已经有了众多的分享,不过...

  • 【UE5】World Partition

    伯特兰·罗素说他人生由三大激情支配着:对爱的渴望、对知识的探求、对人类痛苦的怜悯 早两天,Epic发布了UE5 E...

网友评论

      本文标题:30 UE5 Subsyetem介绍

      本文链接:https://www.haomeiwen.com/subject/zrmvqjtx.html