常见问题

Q:Game Framework 是什么?

A:Game Framework 是一个基于 Unity 5.3+ 引擎的游戏框架,主要对游戏开发过程中常用模块进行了封装,很大程度地规范开发过程、加快开发速度并保证产品质量。

详细的介绍请参考:Game Framework 简介


Q:Game Framework 适用于哪些 Unity 版本?

A:适用于所有 Unity 5.3.0 及以上的版本,即包括 5.3.x、5.4.x、5.5.x、5.6.x、2017.x.x、2018.x.x 和 2019.x.x。


Q:Game Framework 由哪几部分组成?

A:完整的 Game Framework 包含三部分:

  • GameFramework – 封装基础游戏逻辑,如数据管理、资源管理、对象池、有限状态机、本地化、事件、实体、网络、界面、声音等,此部分逻辑实现不依赖于 Unity 引擎,以程序集的形式提供。
  • UnityGameFramework.Runtime – 依赖 UnityEngine.dll 进行对 GameFramework.dll 的补充实现。为了方便兼容 Unity 的各个版本,此部分已经以代码的形式包含在 Unity 插件中。
  • UnityGameFramework.Editor – 依赖 UnityEditor.dll 进行对工具、Inspector 的实现。为了方便兼容 Unity 的各个版本,此部分已经以代码的形式包含在 Unity 插件中。

注:在与本 Game Framework 相关的技术文章中,我们一般将 Game Framework 简称为 GF,将 Unity Game Framework 简称为 UGF。

常见问题 - 第1张  | Game Framework


Q:当我遇到问题时,如何获得技术支持?

A:所有和 Game Framework 相关的问题,可以在以下几个地方尝试解决:


Q:使用 Game Framework 的项目,需要付费么?

A:使用 Game Framework 进行项目开发是完全免费的,您无需支付任何费用。

但请注意,Game Framework 是基于最为宽松的 MIT 许可协议进行开源的。作为协议的一部分,请在软件和软件的所有副本中包含版权声明和许可声明。

详请请参阅:MIT(开源软件许可协议)


Q:在哪里找到 GameFramework.dll 的源码?

A:Game Framework 是完全开源的,但是为了使用方便,建议将 GameFramework 层打包为独立程序集,源码可以在 GitHub 上找到:https://github.com/EllanJiang/GameFramework/


Q:我的网络访问 GitHub 困难怎么办?

A:访问 GitHub 困难时,可以考虑访问国内码云镜像,地址如下:https://gitee.com/jiangyin/

但请注意,只有发布新版本时才会同步到码云镜像,日常 commit 时并不进行同步。


Q:使用 Game Framework 需要什么前置知识?

A:熟练掌握 C# 编程语言;熟悉 Unity 开发工具,最好有 1 年以上的 Unity 开发经验。


Q:如何把 GameFramework.dll 换成源码运行?

A:首先,强烈建议保持 GameFramework.dll 的现状而不是更换为代码,以防止开发过程中错误的进行修改。如果是想调试其中的代码,可以考虑使用源码自行编译 dll,并连同 pdb 文件覆盖到原有目录,即可跳转进入 dll 内的函数。

如果一定要更换源码,请先删除掉原来的 GameFramework.dll 后,按以下步骤进行:

a)若当前使用的 Unity 2017.3(不含)以前的版本

将 Game Framework 源码目录拷贝至 Plugins 目录(若不存在 Plugins 目录,请自行创建)中即可。

b)若当前使用的 Unity 2017.3 及以后的版本

将 Game Framework 源码目录拷贝至任意位置,并在此目录中增加 GameFramework.asmdef 文件,然后让 UnityGameFramework.Runtime.asmdef 依赖 GameFramework.asmdef,让 UnityGameFramework.Editor.asmdef 同时依赖 GameFramework.asmdef 和 UnityGameFramework.Runtime.asmdef 即可。


Q:从 GitHub 下载的 StarForce 示例工程编译报错怎么办?

A:提交在 GitHub 上的 StarForce 示例工程是经过测试的,通常情况下不会出现编译错误。

根据 Game Framework 交流群里的反馈,最常见的原因是因为 StarForce 在引入本游戏框架时使用了 submodule,而使用者并不熟悉 git 版本控制工具,而是直接下载了 GitHub 上提供的 zip 包。由于此 zip 包并不包含 submodule,进而导致报错。

因此,建议不熟悉 git 的用户,可以考虑尝试 GitHub Desktop(由 GitHub 官方提供的工具),此工具在下载工程时,会自动下载 submodule。

另外对于熟悉 TortoiseSVN 的用户,还可以考虑尝试 TortoiseGit,下载工程后,再更新 submodule 即可。

最后,强烈建议学习 git。


Q:框架一定要构建 AssetBundle 才能发布运行么?在编辑器模式下能否直接运行游戏而不每次都构建 AssetBundle 资源?

A:基于 Game Framework 进行开发的项目,不建议再使用 Resources 目录特性(Unity 官方也有类似建议,尽量放弃使用 Resources 进行加载)。

故如果要发布到 Windows平台、Mac平台,或者在苹果、安卓设备上运行(即脱离 Unity 编辑器),则必须将资源构建为 AssetBundle。

但在 Unity 编辑器中,可以考虑使用 Game Framework 提供的编辑器模式,直接从磁盘进行资源加载,而避免每次修改资源都要重新构建 AssetBundle,以提高开发效率。

当然,即使在 Unity 编辑器中,依然可以手动关闭编辑器模式,从 AssetBundle 加载资源,以模拟和真实运行环境一样的效果。