Alexander D Huang
Alexander D Huang

Categories

Code Reading

Tags

UnityGameFramework(UGF) 是由 Ellan Jiang 开发的一个 Unity 游戏开发框架。我决定采用它作为我最近为公司开发的一款 3D 扫雷游戏的开发框架,为此,我觉得有必要仔细阅读它的源码,并做好笔记。另外,我还建了一个仓库去写一些测试代码。

官网已经有教程教用户如何安装框架了。它推荐的安装方式是安装 Unity 插件包,其中核心部分的代码都打包成 DLL 形式了。虽然这种方法方便了用户使用,但我的目的是阅读和调试代码,我得拿到所有的代码。

下面是我的安装方法:

  • 下载某一个版本(如我当前使用的是 v2019.11.09)的 UnityGameFramework,并将它拷贝到新建的 Unity 工程的 Assets 目录之中,如:

  • 删除 UnityGameFramework/Libraries 文件夹下的 GameFramework.dllGameFramework.xml 文件。
  • 下载某一个版本的 GameFramework,并将它的源码拷贝到 Unity 工程的 Assets 目录之中。其存放位置任意,如我就将它放进了 UnityGameFramework 目录之中:

    然后在 GameFramework 文件夹下新建一个 GameFramework.asmdef 文件:

      {
          "name": "GameFramework",
          "references": [],
          "includePlatforms": [],
          "excludePlatforms": [],
          "allowUnsafeCode" : true
      }
    

    然后让 UnityGameFramework.Runtime.asmdef 依赖 GameFramework.asmdef,让 UnityGameFramework.Editor.asmdef 同时依赖 GameFramework.asmdefUnityGameFramework.Runtime.asmdef 即可。

      {
          "name": "UnityGameFramework.Runtime",
          "references": [
              "GameFramework"
          ],
          "includePlatforms": [],
          "excludePlatforms": []
      }
    
      {
          "name": "UnityGameFramework.Editor",
          "references": [
              "UnityGameFramework.Runtime",
              "GameFramework"
          ],
          "includePlatforms": [
              "Editor"
          ],
          "excludePlatforms": []
      }
    

如此,整个框架就安装好了。接下来我们可以新建一个空场景 LaunchScene.unity 作为我们的游戏的启动场景,然后把框架提供的 GameFramework.prefab 拖入到场景中:

现在点击运行按钮就可以让框架代码跑起来了。