Demo1-如何创建一个GameFramework项目
为了弥补官方文档的严重缺失,同时也希望Game Framework这个框架能稍微流行开来(不管它优不优秀,代码是绝对值得学习的),木头我就自愿帮框架作者写一些基础的Demo教程吧。
噢,天呐,我真伟大(注意,这不是一篇翻译的文章!)
这一篇,我们先从创建一个GameFramework项目开始。
1.下载GameFramework Package
首先要到框架的官网下载资源包:http://gameframework.cn/download
资源包里包含了GameFramework框架的Dll(源码可以到github获取)、UnityGameFramework源码、空项目示例。
目前最新的源码是3.1.0,但是,最新的资源包是3.0.9,木头很懒的,既然只有3.0.9版本的包,那我就只下载这个版本好了。
2.新建项目,导入资源包
接下来要怎么做,就不用我说了,否则你应该要学习的不是框架,而是Unity3D入门教程。
好吧,顺便说一下,新建一个空项目,然后导入资源包就可以了:
3.我们的HelloWorld
基于历史原因,教程的第一步,当然是要来个HelloWorld了。
资源导入之后,新建一个场景,然后新建一个脚本(Demo1_ProcedureHelloWorld.cs),如:
进入我的Demo1场景,然后,重点来了,把GameFramework/Prefabs目录下的GameFramework预制体拖到Hierarchy视图里,然后变成这样:
是的,这个预制体包含了框架的基本组件,虽然作者文档奇缺,但是,框架用起来还是挺方便的(目前来看)。
最后,打开Demo1_ProcedureHelloWorld.cs脚本,写入如下代码:
using GameFramework;
using GameFramework.Procedure;
using ProcedureOwner = GameFramework.Fsm.IFsm<GameFramework.Procedure.IProcedureManager>;
/// <summary>
/// Demo1-HelloWorld
/// </summary>
public class Demo1_ProcedureHelloWorld : ProcedureBase {
protected override void OnEnter (ProcedureOwner procedureOwner) {
base.OnEnter (procedureOwner);
string welcomeMessage = "HelloWorld!";
Log.Info (welcomeMessage);
Log.Warning (welcomeMessage);
Log.Error (welcomeMessage);
}
}
如果大家有看过我的StarForce系列教程的话,应该很清楚,这是一个流程,也是GameFramework框架的基础。游戏的大部分的逻辑都是基于各个流程的,以下是作者的原话:
流程 (Procedure)– 是贯穿游戏运行时整个生命周期的有限状态机。通过流程,将不同的游戏状态进行解耦将是一个非常好的习惯。对于网络游戏,你可能需要如检查资源流程、更新资源流程、检查服务器列表流程、选择服务器流程、登录服务器流程、创建角色流程等流程,而对于单机游戏,你可能需要在游戏选择菜单流程和游戏实际玩法流程之间做切换。如果想增加流程,只要派生自 ProcedureBase 类并实现自己的流程类即可使用。
由于是HelloWorld,就不深入讲解了,然后回到我们的Hierarchy视图,选中procedure对象,将我们的Demo1_ProcedureHelloWorld流程勾上,并且在Entrance Procedure(入口流程)下拉列表里选中它:
最后,运行游戏,看看日志输出:
随着三个帅气的HelloWorld输出,我们这篇教程,也就结束了。
(旁白:等等!就结束了?我还没出场啊混蛋!)