GameFramework框架详解之 Event事件系统

Posted PassionY

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了GameFramework框架详解之 Event事件系统相关的知识,希望对你有一定的参考价值。

一.前言

GameFramework是一种基于Unity3D引擎的游戏开发框架,其中包括了强大的事件系统。该系统使用了观察者设计模式,允许游戏对象之间的松耦合通信和交互。
传统的事件系统,一般都是由一个EventManager管理着所有的Event集合,每个Event包括一个EventId+EventHandler。
GameFramework的事件系统,采用了一种更面向对象的注册方法,让代码的结构性更强,耦合降低。
那么它是怎么做到的呢?接下来我们就来剖析一下。

二.传统事件系统

为了更好的让大家理解GameFramework的事件系统,我们先来简单看一个传统的最常用的事件系统模型来作为对比。
传统的事件系统,不需要额外针对某个事件来写继承了,只需要在哪里使用哪里注册或者发送事件即可。所以相对来说,结构上会更容易理解一些。
总共是三部分组成,如下所示:

1.事件ID(EventID枚举)

EventID枚举类:负责存储所有的事件ID

    public enum EventID : <

GameFramework框架 StarForceDemo导入GF源码

在开始学习GameFramework框架之时,最好的切入点就是官方Demo案例,为了便于查看源码,我们首先需要将dll替换为源码。

这里以写这篇文章时最新的GF版本2019.11.26(在本栏接下里的教程中,都会使用GameFramework缩略词GF),在该版本之后如果有新版本可以直接选择最新版本。下面是操作步骤:

  1. 下载Demo项目,并导入U3D中。
  2. 下载Game Framework 2019.11.26,解压压缩文件并放入StarForce\\Assets\\GameFramework\\Libraries目录下,接着删除GameFramework.dll程序集。
  3. StarForce\\Assets\\GameFramework\\Libraries\\GameFramework文件夹目录上右键 Create->Assembly Definition创建程序集引用,并命名为GameFramework。
  4. 点击上一步创建的GameFramework程序集引用,勾选Allow 'unsafe' Code并Apply。
  5. 进入StarForce\\Assets\\GameFramework\\UnityGameFramework\\Editor目录和StarForce\\Assets\\GameFramework\\UnityGameFramework\\Runtime目录,分别在两个程序集引用上添加对第三步创建的GameFramework程序集引用并Apply。

至此,所有操作均已完成。可以打开项目根目录下的GameFramwork场景文件,运行StarForce项目检查是否正常运行。

欢迎在评论区留言~

以上是关于GameFramework框架详解之 Event事件系统的主要内容,如果未能解决你的问题,请参考以下文章

GameFramework框架 StarForceDemo导入GF源码

GameFramework源码学习

GameFramework框架学习教程计划

GameFramework框架学习教程计划

GameFramework框架学习教程计划

走进浏览器之Event Loop的那些事