常见问题

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/

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

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

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

Q:Game Framework 兼容哪些平台?

A:当前主要兼容 PC、Mac、iOS 和 Android 平台,WebGL 等平台没有经过测试,需要自行尝试并做出一定地修改,交流群里有接入 WebGL 成功的同学。

Q:使用 Game Framework 的一般步骤是什么?

A:首先,在工程中导入 Game Framework 插件。推荐使用 git submodule 的方式导入,也可使用下载页面下载 unitypackage 后导入。

然后,将插件目录中的Prefabs/GameFramework.prefab拖入到一个空场景中,后续应通过该场景作为启动场景。

接下来,根据项目需求,建立相应的流程类,激活要使用的流程并设置起始流程。

此时,框架即可正常工作。还可以考虑参考 StarForce 示例工程,对框架的模块进行封装(如 GameEntry),方便使用框架。

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 文件(注意需要勾选unsafe选项)。然后让 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 加载资源,以模拟和真实运行环境一样的效果。

Q:Game Framework 支持使用 Lua、Wwise 等插件以及 Unity 的 Timeline、ECS 等技术吗?

A:使用 Lua 脚本、Wwise 音频等第三方插件时,主要需要使用框架的资源加载接口,实现对第三方插件的资源加载。至于 Timeline、ECS 等技术,是完全不影响使用的,框架主要的职责是对常用的游戏底层模块进行封装。