UnityGameFramework 是一个基于 Unity 引擎的游戏框架,衍生于 Game Framework, 主要对游戏开发过程中常用模块进行了封装,很大程度地规范开发过程、加快开发速度并保证产品质量。
- 主页: https://gameframework.cn/
github: https://github.com/EllanJiang/UnityGameFramework
一 目录结构
目录 作用 Config/
全局配置: 存储全局只读配置,如初始速度、初始音量等。 DataNode/
数据结点: 将游戏运行时的数据以树状结构进行保存及管理。 DataTable/
数据表: 将游戏数据以表格形式进行配置后使用。 Debugger/
调试器: 编辑器中或开发模式运行时,将出现调试器窗口。 Download/
下载: 提供下载文件的功能,支持断点续传。更新资源时会主动调用此模块。 Entity/
实体: 游戏场景中动态创建的一切对象。此模块提供管理实体和实体组的功能,如显示隐藏实体、挂接实体(如挂接武器、坐骑,或者抓起另一个实体)等。实体使用结束后可以不立刻销毁,从而等待下一次重新使用。 Event/
事件: 监听游戏逻辑、抛出事件。也可以定义自己的游戏逻辑事件。 FileSystem/
文件系统: 对零散文件进行集中管理,优化资源加载速度,提升资源加载性能。 FSM/
有限状态机: 提供创建、使用和销毁有限状态机的功能。 Localization/
本地化: 多语言功能,还支持资源本地化,如烟花特效可做出中文“新年好”,英文“Happy New Year”。 Network/
网络: 提供 Socket 长连接功能,当前支持 TCP 协议,兼容 IPv4 和 IPv6 。可以同时建立多个连接。 ObjectPool/
对象池: 提供对象缓存池的功能,避免频繁地创建和销毁各种游戏对象,提高游戏性能。可自定义对象池。 Procedure/
流程: 贯穿游戏整个生命周期的流程控制。如检查资源流程、更新资源流程、检查服务器流程、选择服务器流程、登录服务器流程、创建角色流程等。 Resource/
资源: 只支持异步加载资源。数据表、本地化字典,实体、场景、界面,都将使用异步加载。。 Scene/
场景: 提供场景管理的功能,可以同时加载多个场景,也可以随时卸载任何一个场景。 Setting/
设置: 以键值对的形式存储玩家数据,对 UnityEngine.PlayerPrefs 进行封装,可直接存在硬盘。 Sound/
声音: 提供管理声音和声音组的功能,用户可以自定义一个声音的音量、是 2D 声音还是 3D 声音,甚至是直接绑定到某个实体上跟随实体移动。 UI/
界面: 提供管理界面和界面组的功能,如显示隐藏界面、激活界面、改变界面层级等。所有 UI 插件只要继承 UIFormLogic 类并实现自己的界面类即可使用。界面结束可以不销毁,等待下次使用。 WebRequest/
Web 请求: 提供短连接功能,用 Get 或 Post 方法向服务器发送请求并获取响应数据,可同时发送多个。
二内置类
类名 | 作用 |
---|---|
IReference | GF 万物基于引用池 |
ObjectBase | IReference 类持有 unity 的游戏对象 |
AssetObject | ObjectBase 类持有 Assetbundle 中的 Asset |
ResourceObject | ObjectBase 类持有 Assetbundle 中的资源 |
EntityInstanceObject | ObjectBase 类指向 Assetbundle 中的 Asset 实例化后的 GameObject |
三 AssetBundle 资源加载
Game Framework 采用 AssetBundle 资源加载方式, 自带 AssetBundle 编辑工具: GameFramework -> Resource Tool
分为四种模式:
- 编辑器模式
- 本地模式:读取
\Assets\StreamAssets
文件夹下内容 - 启动前更新模式
启动中更新模式
Game Framework->Builtin->Resource -> 检查器 -> Resource Mode
设置四 资源打包及发布
1. 编辑资源包
Game Framework->Resource Tools->Resource Editor
:2. 打包资源包
Game Framework->Resource Tools->Resource Buider
:3. 发布资源包
- 本地模式
更新模式
- 修改BuildInfo中资源服务器地址
- 配置Version信息: 小于或不等于服务器版本则更新
- 部署资源服务器
对趋势的预判具有战略参考价值。
正能量充沛,给予读者行动勇气。
独特的构思和新颖的观点,让这篇文章在众多作品中脱颖而出。