只有你足够强,别人才会和你讲道理。
文章: 280
浏览: 3,001,605
  • 博主:笨木头
  • 关注:Unity、Net Core、Blazor
  • 邮箱:musicvs@163.com
笨木头  2018-03-02 17:45     Unity3D,Game Framework     阅读(22137)     评论(17)
转载请注明,原文地址: http://www.benmutou.com/archives/2535
文章来源:笨木头与游戏开发
本文 Game Framework 版本:3.0.9

本文 Unity3D 版本:2017.3

更多GF教程和实例:https://github.com/mutouzdl/gameframework_demo.git

 
转载请注明,原文地址:http://www.benmutou.com/archives/2535 文章来源:笨木头与游戏开发
 

为了弥补官方文档的严重缺失,同时也希望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输出,我们这篇教程,也就结束了。

旁白:等等!就结束了?我还没出场啊混蛋!

粤ICP备16043700号

本博客基于 BlazorAnt Design Blazor 开发