Game Framework学习笔记(1):初识Game Framework

写在前面

什么是Game Framework

Game Framework是一个基于 Unity 5.3+ 引擎的游戏框架 ,完全开源、功能强大且作者一直在更新功能。

它主要对游戏开发过程中常用模块进行了封装,很大程度地规范开发过程、加快开发速度并保证产品质量。

为什么要使用一个优秀的框架开发游戏

大家可以看看这个UNITE -Unity项目架构设计与开发管理_腾讯视频 ,这是在UNITE 2015 BEIJING上,时任Unity大中华区技术总监刘钢的演讲。

原则上Unity本身就是一个大的架构,但是为了应付足够多的环境,Unity没有做过多的限制,既允许你仅仅只用单一的Empty Game Object,也也允许你自己客制复杂的 Manger of Mangers 来分类管理各个功能模块。

当你准备开发一个稍大一点的游戏时,就会发现游戏内各种资源、实例如果不通过一些合理的方式整理起来,就会变得杂乱无章,无形之中提高了开发难度,游戏越复杂,难度越大。这时候你就需要框架了。

为什么要学习使用Game Framework

对于游戏开发者来说,最适合自己的框架无非是自己在从小项目到大项目的过程中,自己整理出来的可复用代码。但是对于像我这样没什么经验的新手,想要学习这方面的知识,最快的方法无非是学习别人的框架了。Game Framework毫无疑问是一个非常优秀的框架,相对来说比较适合我们学习(要是作者能再多写一些文档就好了),而且也是开源的,作者E大(Ellan)游戏上线时间也不长,工作上也比较忙,我们也没法要求更多。

学习Game Framework有什么要求

只要你接触过Unity,知道C#最基础的语法就能开始学习了(完全不用,因为我自己就没达到这个水平T-T)。

当然因为我本身能力就非常有限,所以只能一步一步来。

开始接触Game Framework

首先我们得下载Game Framework的资源包。

进入Game Framework官网的下载界面,点击下载最新版本。

接着,新建一个Unity空项目,将资源包导入进去。

等待导入完成后,资源目录是这样的:

资源包本身为我们提供了一个示例场景,我们双击切换至Example文件夹下的Example场景。

点击Play按钮,激活场景。

可以看到场景中左上角显示了一个正在显示帧数的方框,那是Game Framework Debugger。还能看到console里面五条信息,三条Log,一条Warning和一条Error。

Game Framework version is 3.1.3. Unity Game Framework version is 3.1.3.
UnityEngine.Debug:Log(Object)
During this run, Game Framework will use editor resource files, which you should validate first.
UnityEngine.Debug:Log(Object)
Hello! This is an empty project based on Game Framework 3.1.3.
UnityEngine.Debug:Log(Object)
Hello! This is an empty project based on Game Framework 3.1.3.
UnityEngine.Debug:LogWarning(Object)
Hello! This is an empty project based on Game Framework 3.1.3.
UnityEngine.Debug:LogError(Object)

第一条Log信息提示当前Game Framework和Unity Game Framework的版本,第二条显示我们目前使用的是Editor内的资源文件(而不是已经打包好的Asset Bundle,这个我会在以后的文章里面讲到)。

后面三条信息是作者分别用三种方式告诉我们,我们打开的是示例的空项目。

接着我们打开Example文件夹内的C#文件。

using GameFramework;
using GameFramework.Procedure;
using ProcedureOwner = GameFramework.Fsm.IFsm<GameFramework.Procedure.IProcedureManager>;
​
namespace GameFrameworkExample
{
    public class ProcedureExample : ProcedureBase
    {
        protected override void OnEnter(ProcedureOwner procedureOwner)
        {
            base.OnEnter(procedureOwner);
​
            string welcomeMessage = string.Format("Hello! This is an empty project based on Game Framework {0}.", GameFrameworkEntry.Version);
            Log.Info(welcomeMessage);
            Log.Warning(welcomeMessage);
            Log.Error(welcomeMessage);
        }
    }
}
​

可以看到,在重写的OnEnter函数内,Log.Info(welcomeMessage);Log.Warning(welcomeMessage);Log.Error(welcomeMessage);这三句对应了三条消息。

这些代码是通过什么方式调用的?下篇文章我们就来学习Game Framework的核心内容之一:流程(Procedure)

猜你喜欢

转载自blog.csdn.net/XTStarry/article/details/85013267
今日推荐