美文网首页
Unity ECS 学习笔记 —— 热更组件和系统

Unity ECS 学习笔记 —— 热更组件和系统

作者: 灰的狼 | 来源:发表于2023-12-27 18:20 被阅读0次

    在上一篇笔记unity ECS 学习笔记 一 子场景以及发布2 - 简书 (jianshu.com)的基础上接入华佗热更框架介绍 | HybridCLR (code-philosophy.com).
    默认情况下ECS的代码是不能直接走热更的,这里需要稍微调整下:

    • 加上UNITY_DISABLE_AUTOMATIC_SYSTEM_BOOTSTRAP_RUNTIME_WORLD宏,阻止ECS自动初始化WORLD;


      UNITY_DISABLE_AUTOMATIC_SYSTEM_BOOTSTRAP_RUNTIME_WORLD
    • 加载完成热更新DLL后执行以下代码,初始化Wrold;

            TypeManager.Shutdown();
            TypeManager.Initialize();
            DefaultWorldInitialization.Initialize("Default World", false);
    
    • 切换到有Entity的场景,类似代码,Test02的内容在上一篇笔记
    SceneManager.LoadScene("Test02", LoadSceneMode.Single);
    

    通过以上方式和流程可以实现热更“组件”(IComponentData)和class类型的“系统”(SystemBase),但是基于(ISystem)的值类型“系统”由于ILPostProcess会给dll注入额外代码的原因无法热更(加载时会报错),后面可以研究下是否可以在编译热更dll时也调用下ECS框架的工具给热更dll也注入一下代码;

    相关文章

      网友评论

          本文标题:Unity ECS 学习笔记 —— 热更组件和系统

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