资源链接

官方地址:https://gameframework.cn/
github地址:https://github.com/EllanJiang/GameFramework/

UGF地址:https://github.com/EllanJiang/UnityGameFramework
码云地址:https://gitee.com/jiangyin
官方案例StarForce:https://github.com/EllanJiang/StarForce
官方教程:https://gameframework.cn/tutorial/list/

框架介绍

官方的框架介绍:https://gameframework.cn/document/

Game Framework 是一个基于 Unity 引擎的游戏框架,主要对游戏开发过程中常用模块进行了封装,很大程度地规范开发过程、加快开发速度并保证产品质量。适用于所有 Unity 5.3.0 及以上的版本,在最新的 Game Framework 版本中,包含 19 个内置模块:

基础和工具 (Base)  – 关于日志、引用池、工具集的文档。
全局配置 (Config)   – 存储一些全局的只读的游戏配置,如玩家初始速度、游戏初始音量等。
数据结点 (Data Node)  – 将任意类型的数据以树状结构的形式进行保存,用于管理游戏运行时的各种数据。
数据表 (Data Table) – 可以将游戏数据以表格(如 Microsoft Excel)的形式进行配置后,使用此模块使用这些数据表。数据表的格式是可以自定义的。
调试器 (Debugger) – 当游戏在 Unity 编辑器中运行或者以 Development 方式发布运行时,将出现调试器窗口,便于查看运行时日志、调试信息等。用户还可以方便地将自己的功能注册到调试器窗口上并使用。
下载 (Download) – 提供下载文件的功能,支持断点续传,并可指定允许几个下载器进行同时下载。更新资源时会主动调用此模块。
实体 (Entity) – 我们将游戏场景中,动态创建的一切物体定义为实体。此模块提供管理实体和实体组的功能,如显示隐藏实体、挂接实体(如挂接武器、坐骑,或者抓起另一个实体)等。实体使用结束后可以不立刻销毁,从而等待下一次重新使用。
事件 (Event) – 游戏逻辑监听、抛出事件的机制。Game Framework 中的很多模块在完成操作后都会抛出内置事件,监听这些事件将大大解除游戏逻辑之间的耦合。用户也可以定义自己的游戏逻辑事件。
文件系统 (File System) – 虚拟文件系统使用类似磁盘的概念对零散文件进行集中管理,优化资源加载时产生的内存分配,甚至可以对资源进行局部片段加载,这些都将极大提升资源加载时的性能。
有限状态机 (FSM) – 提供创建、使用和销毁有限状态机的功能,一些适用于有限状态机机制的游戏逻辑,使用此模块将是一个不错的选择。
本地化 (Localization) – 提供本地化功能,也就是我们平时所说的多语言。Game Framework 在本地化方面,不但支持文本的本地化,还支持任意资源的本地化,比如游戏中释放烟花特效也可以做出几个多国语言的版本,使得中文版里是“新年好”字样的特效,而英文版里是“Happy New Year”字样的特效。
网络 (Network) – 提供使用 Socket 长连接的功能,当前我们支持 TCP 协议,同时兼容 IPv4 和 IPv6 两个版本。用户可以同时建立多个连接与多个服务器同时进行通信,比如除了连接常规的游戏服务器,还可以连接语音聊天服务器。如果想接入 ProtoBuf 之类的协议库,只要派生自 Packet 类并实现自己的消息包类即可使用。
对象池 (Object Pool) – 提供对象缓存池的功能,避免频繁地创建和销毁各种游戏对象,提高游戏性能。除了 Game Framework 自身使用了对象池,用户还可以很方便地创建和管理自己的对象池。
流程 (Procedure) – 是贯穿游戏运行时整个生命周期的有限状态机。通过流程,将不同的游戏状态进行解耦将是一个非常好的习惯。对于网络游戏,你可能需要如检查资源流程、更新资源流程、检查服务器列表流程、选择服务器流程、登录服务器流程、创建角色流程等流程,而对于单机游戏,你可能需要在游戏选择菜单流程和游戏实际玩法流程之间做切换。如果想增加流程,只要派生自 ProcedureBase 类并实现自己的流程类即可使用。
资源 (Resource)– 为了保证玩家的体验,我们不推荐再使用同步的方式加载资源,由于 Game Framework 自身使用了一套完整的异步加载资源体系,因此只提供了异步加载资源的接口。不论简单的数据表、本地化字典,还是复杂的实体、场景、界面,我们都将使用异步加载。同时,Game Framework 提供了默认的内存管理策略(当然,你也可以定义自己的内存管理策略)。多数情况下,在使用 GameObject 的过程中,你甚至可以不需要自行进行 Instantiate 或者是 Destroy 操作。
场景 (Scene) – 提供场景管理的功能,可以同时加载多个场景,也可以随时卸载任何一个场景,从而很容易地实现场景的分部加载。
游戏配置 (Setting) – 以键值对的形式存储玩家数据,对 UnityEngine.PlayerPrefs 进行封装,也可以将这些数据直接存储在磁盘上。
声音 (Sound)– 提供管理声音和声音组的功能,用户可以自定义一个声音的音量、是 2D 声音还是 3D 声音,甚至是直接绑定到某个实体上跟随实体移动。
界面 (UI) – 提供管理界面和界面组的功能,如显示隐藏界面、激活界面、改变界面层级等。不论是 Unity 内置的 uGUI 还是其它类型的 UI 插件(如 NGUI),只要派生自 UIFormLogic 类并实现自己的界面类即可使用。界面使用结束后可以不立刻销毁,从而等待下一次重新使用。
Web 请求 (Web Request)– 提供使用短连接的功能,可以用 Get 或者 Post 方法向服务器发送请求并获取响应数据,可指定允许几个 Web 请求器进行同时请求。

官方案例下载和源码替换

1. 下载StarForce官方案例 ,用Unity打开工程,地址:https://github.com/EllanJiang/StarForce

打开启动工程, StarForceLauncher, 发现报了一堆错误,解决方法:

1. 下载GF源码库,复制GameFramework文件夹下的所有文件夹(除了.csproj)到unity工程的GameFramework文件夹下:地址

2. 下载UGF源码库:复制UnityGameFramework-master 到unity的Assets目录下 地址

3. 在GameFramewoork文件夹下创建 程序集 GameFramework并勾选 unsafe

4. 删掉 UnityGameFramework-master/Libraries 下面的 GameFramework.dll文件和.xml文件

5. 给UnityGameFramework.Editor 和  UnityGameFramework.Runtime上添加 GameFramework引用

所有报错应该都消失了,可以成功启动场景了

下一篇,学习 GameEntry,敬请期待,如有错误或不解的地方,还请留言,谢谢!

GameFramework框架 (一) 框架简介相关推荐

  1. 【Unity 3D】GameFramework、QFramework框架简介及应用实战(超详细 附源码)

    需要框架资源包和源码请点赞关注收藏后评论区留言私信~~~ 框架,又称软件框架,这个词最初是建筑学概念,意思是一个框子,指其约束性,也是一个架子,指其支撑性,一个基本概念的结构,用于解决或处理复杂的问题 ...

  2. autoware框架与功能简介(一)

    autoware框架与功能简介(一) Autoware.AI是世界上第一个用于自动驾驶技术的"All-in-One"开源软件.它ROS1操作系统,并在Apache2.0许可下使用. ...

  3. DL框架之PyTorch:深度学习框架PyTorch的简介、安装、使用方法之详细攻略

    DL框架之PyTorch:PyTorch的简介.安装.使用方法之详细攻略 DL框架之PyTorch:深度学习框架PyTorch的简介.安装.使用方法之详细攻略 目录 PyTorch的简介 1.pyto ...

  4. DL框架之darknet:深度学习框架darknet的简介、安装、使用方法的详细攻略

    DL框架之darknet:深度学习框架darknet的简介.安装.使用方法的详细攻略 目录 darknet的简介 darknet的安装 darknet的使用方法 1.YOLO: Real-Time O ...

  5. DL框架之AutoKeras框架:深度学习框架AutoKeras框架的简介、特点、安装、使用方法详细攻略

    DL框架之AutoKeras框架:深度学习框架AutoKeras框架的简介.特点.安装.使用方法详细攻略 Paper:<Efficient Neural Architecture Search ...

  6. DL框架之Keras:深度学习框架Keras框架的简介、安装(Python库)、相关概念、Keras模型使用、使用方法之详细攻略

    DL框架之Keras:深度学习框架Keras框架的简介.安装(Python库).相关概念.Keras模型使用.使用方法之详细攻略 目录 Keras的简介 1.Keras的特点 2.Keras四大特性 ...

  7. DL框架之Tensorflow:深度学习框架Tensorflow的简介、安装、使用方法之详细攻略

    DL框架之Tensorflow:深度学习框架Tensorflow的简介.安装.使用方法之详细攻略 目录 Tensorflow的简介 1.描述 2.TensorFlow的六大特征 3.了解Tensorf ...

  8. Net框架下-ORM框架LLBLGen的简介(转载)

    Net框架下-ORM框架LLBLGen的简介 http://www.cnblogs.com/huashanlin/archive/2015/02/12/4288522.html 官方网址:http:/ ...

  9. linux任务调度框架,任务调度框架Hangfire 简介

    任务调度是我们项目中常见的功能,虽然任务调度的功能实现本身并不难,但一个好用的轮子还是可以给我们的开发的效率提升不少的. 在.net环境中,较为有名的任务调度框架是HangFire与Quartz.NE ...

  10. 主流的分布式调度框架、Elastic-job简介、功能和常用介绍

    主流的分布式调度框架.Elastic-job简介.功能和常用介绍 主流的分布式调度框架 Elastic-job简介 功能 常用 主流的分布式调度框架 elastic-job:由当当网基于quartz ...

最新文章

  1. HDOJ-1062 Text Reverse
  2. seaborn系列 (9) | 分簇散点图swarmplot()
  3. 二、八、十、十六进制及小数间的转换
  4. 静态路由实验 +http+dns_华为静态路由配置实验
  5. Java String和Date的转换 Date类型操作
  6. 源码 状态机_阿里中间件seata源码剖析七:saga模式实现
  7. 年薪 50w+ 的程序员,是这样写代码的?
  8. 使用vue构建一个可视化大数据平台
  9. Java 项目的实际开发过程
  10. IntelliJ IDEA中项目界面右上角中没有SVN工具按钮
  11. 【qt】QWS和 QPA
  12. Android Toast的立即取消与显示
  13. Re-ranking Person Re-identification with k-reciprocal Encoding笔记
  14. 谁是克星?4款网页木马拦截工具大比武
  15. CTF题库-实验吧(密码学)之综合篇
  16. MySql版本号查看命令
  17. 前端技巧培训-后台战友快速入门
  18. readmemh函数引用的txt格式_memory - 在Verilog中,我尝试使用$ readmemb来读取.txt文件,但它仅在内存中加载xxxxx(不必担心) - 堆栈内存溢出...
  19. Java工程师必备软件大合集,手把手教你如何下载和安装
  20. 流畅的python读书笔记④:文本和字节序列

热门文章

  1. 【PS4开发】如何通过unity3d发布ps4应用
  2. 阳线双响炮K线形态,上升势不可挡,送指标源码
  3. php fatal 和php error,从PHP Fatal error: Uncaught Error: Class '' not found in php:说起
  4. 安全架构--12--企业隐私合规体系建设总结
  5. 普渡大学计算机专业全美排名,美国普渡大学排名
  6. 北京3月去哪玩 赏花踏青登山六大推荐
  7. wps合并重复项并求和_如何在excel合并同类项数据并求和(去除重复项)
  8. ICPC冠军教练亲自授课 字节跳动ICPC冬令营全球招募50支受训队
  9. 计算机基础单位:位,字节,兆等关系
  10. Java实现猜拳小游戏