【GameFramework框架】三、快速启动

推荐阅读

  • CSDN主页
  • GitHub开源地址
  • Unity3D插件分享
  • 简书地址

大家好,我是佛系工程师☆恬静的小魔龙☆,不定时更新Unity开发技巧,觉得有用记得一键三连哦。

一、前言

【GameFramework框架】系列教程目录:
https://blog.csdn.net/q764424567/article/details/135831551

这篇文章就带领大家如何快速启动GameFramework框架。

二、正文

2-1、导入框架

2-1-1、下载方式
  • 官网unitypackage包
    在官网下载unitypackage然后导入到项目中。
    https://gameframework.cn/download/
    【GameFramework框架】三、快速启动_第1张图片

  • 拉取Gitee项目库
    下载Zip或者使用git进行拉取都可以。
    https://gitee.com/jiangyin/GameFramework
    【GameFramework框架】三、快速启动_第2张图片

  • 拉取Github项目库
    东西是一样的,不过一个在Gitee一个在Github
    https://github.com/EllanJiang/GameFramework
    【GameFramework框架】三、快速启动_第3张图片
    比较推荐使用git拉取的方式,防止出现莫名其妙的错误。

不熟悉 git 的用户,可以考虑尝试 GitHub Desktop(由 GitHub 官方提供的工具):
【GameFramework框架】三、快速启动_第4张图片
Clone即可。
【GameFramework框架】三、快速启动_第5张图片

2-1-2、导入

包导入:
【GameFramework框架】三、快速启动_第6张图片

2-2、运行框架

双击打开Example目录下的Example.scene场景:
【GameFramework框架】三、快速启动_第7张图片
GameFramework.prefab 预制体,用于快速创建一个游戏框架启动场景:
【GameFramework框架】三、快速启动_第8张图片
运行项目后发现Game场景有个浮动小窗口,这是框架提供的调试器窗口:
【GameFramework框架】三、快速启动_第9张图片

  • Console 选项卡在运行时(当然可以在移动设备上)默认按不同日志类型,以不同的日志颜色回显最近的日志。点击某条日志可以查看详细的日志和堆栈详请
  • Information 选项卡显示设备硬件信息、游戏版本和资源信息,输入信息,传感器等
  • Profiler 选项卡显示性能调试相关的信息,内存,对象池,网络等信息
  • Other 选项卡可以用来配置调试框窗口的大小缩放(一般不用修改)、执行内存回收操作或者执行重启游戏操作等

当然,每个选项卡,下面还有很多选项,这里不再赘述。

到这里,框架已经算是启动完成 ,但是很多功能点还没有演示。

接下里用一个使用 Game Framework 游戏框架制作的游戏演示项目,来对框架的使用方法做一些说明。

2-3、Star Force演示项目

(1)拉取版本库:
https://github.com/EllanJiang/StarForce
【GameFramework框架】三、快速启动_第10张图片
有小伙伴可能会遇到从Github下载StarForce示例工程编译报错的问题。

根据作者的反馈可能是StarForce在引入游戏框架的时候使用了Submodule:
【GameFramework框架】三、快速启动_第11张图片
直接下载了 GitHub 上提供的 zip 包不包含submodule,进而导致报错。

考虑尝试 GitHub Desktop(由 GitHub 官方提供的工具),此工具在下载工程时,会自动下载 submodule。

(2)运行示例场景
这是一个类似太空射击的游戏,是基于GameFramework框架进行开发。

我们直接打开位于Assets目录下的StarForce Launcher.scene场景,双击打开运行,推荐使用768*1024分辨率:

【GameFramework框架】三、快速启动_第12张图片
示例虽小,麻雀俱全,这个示例工程演示了资源热更新的基本流程和操作步骤,以及如何加载实体、加载UI等。

对象池、数据表、调试器、下载器、事件、FSM都有涉及。

下面就来具体看一下如何加载的吧。

(3)加载分析

加载GF模块

这个场景中的核心是Buliltin预制体,里面包含了GF所有模块:
【GameFramework框架】三、快速启动_第13张图片
Game Framework身上挂载了Game Entry脚本组件作为主入口:
【GameFramework框架】三、快速启动_第14张图片

使用了partial修饰符,标记一个类是分部类,将框架组件加载和自定义组件放到分部类里面进行:
【GameFramework框架】三、快速启动_第15张图片
两个分部类:
在这里插入图片描述
基本流程

GF框架的流程贯穿游戏的始终(包括很多框架都是流程贯穿始终),要了解这个框架也要先从流程开始分析。

首先找到流程模块Procedure,挂载了Procedure脚本组件ProcedureLauch为游戏入口流程:
【GameFramework框架】三、快速启动_第16张图片
双击打开ProcedureLaunch.cs脚本,继承自ProcedureBase,一层层深入,发现它和状态机有着不可分割的关系:
【GameFramework框架】三、快速启动_第17张图片

他们的关系用UML图大概表示一下就是这样:
【GameFramework框架】三、快速启动_第18张图片

众所周知,基层FSM状态机状态的更新会传递到底层的FSM上,一切状态都被FSM持有和维护。

流程的基层的状态切换也会传递到底层的FSM上。
比如说切换场景:
1、OnEnter进入流程,订阅了一些事件,监听切换场景的事件
2、OnUpdate当通知场景加载已经完成,就可以根据需要切换场景。
3、OnLeave离开流程,也需要取消订阅事件

一般流程都会包含这三个生命周期,也可以根据需求增加其他生命周期函数。

OK,理解了FSM生命周期,下面开始加速了。。。

ProcedureLaunch配置游戏基础信息订阅更新在这:
【GameFramework框架】三、快速启动_第19张图片
进入ProcedureSplash判断版本编辑器模式直接进入预加载,否则,检查版本并更新:
【GameFramework框架】三、快速启动_第20张图片
ProcedureCheckVesion检查版本订阅添加WebRequest任务请求的成功与失败事件:
【GameFramework框架】三、快速启动_第21张图片
ProcedurePreload加载开始加载运行游戏需要的资源,三个生命周期:
【GameFramework框架】三、快速启动_第22张图片
【GameFramework框架】三、快速启动_第23张图片
加载完资源,用ProcedureChangeScene切换场景:
【GameFramework框架】三、快速启动_第24张图片
ProcedureMenu游戏流程,ProcedureMenu游戏菜单流程。

下面就是StarForce的流程图了:
【GameFramework框架】三、快速启动_第25张图片

还是那句话,流程贯穿始终,其他模块也是为流程服务的,比如说Web Request、Download、Object Pool

理解了流程,这个框架也算是入门了,接着就是熟悉更多具体的实现模块,完成框架的使用。

三、后记

如果觉得本篇文章有用别忘了点个关注,关注不迷路,持续分享更多Unity干货文章。


你的点赞就是对博主的支持,有问题记得留言:

博主主页有联系方式。

博主还有跟多宝藏文章等待你的发掘哦:

专栏 方向 简介
Unity3D开发小游戏 小游戏开发教程 分享一些使用Unity3D引擎开发的小游戏,分享一些制作小游戏的教程。
Unity3D从入门到进阶 入门 从自学Unity中获取灵感,总结从零开始学习Unity的路线,有C#和Unity的知识。
Unity3D之UGUI UGUI Unity的UI系统UGUI全解析,从UGUI的基础控件开始讲起,然后将UGUI的原理,UGUI的使用全面教学。
Unity3D之读取数据 文件读取 使用Unity3D读取txt文档、json文档、xml文档、csv文档、Excel文档。
Unity3D之数据集合 数据集合 数组集合:数组、List、字典、堆栈、链表等数据集合知识分享。
Unity3D之VR/AR(虚拟仿真)开发 虚拟仿真 总结博主工作常见的虚拟仿真需求进行案例讲解。
Unity3D之插件 插件 主要分享在Unity开发中用到的一些插件使用方法,插件介绍等
Unity3D之日常开发 日常记录 主要是博主日常开发中用到的,用到的方法技巧,开发思路,代码分享等
Unity3D之日常BUG 日常记录 记录在使用Unity3D编辑器开发项目过程中,遇到的BUG和坑,让后来人可以有些参考。

你可能感兴趣的:(#,GameFramework框架,编辑器,开发语言,c#,游戏引擎,unity)