Unity GameFramework 游戏框架: 基础介绍

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信息: 小于或不等于服务器版本则更新

部署資源服务器