首页 > 全部文档 > 事件 > 事件使用手册
2016
08-31

事件使用手册

Game Framework 支持在游戏逻辑监听、抛出事件。

Game Framework 中的很多模块在完成操作后都会抛出内置事件,监听这些事件将大大解除游戏逻辑之间的耦合。

除了这些内置事件,用户也可以定义自己的游戏逻辑事件。为了自定义游戏逻辑事件,需要在项目内将 EventId 枚举进行扩展,扩展的事件需要从 UnityGameFramework.Runtime.EventId.GameEventStart 之后开始。

同时,在游戏逻辑层给 EventComponent 增加一些扩展方法,使得游戏内能够方便的使用这个 EventId 进行操作。

下面,以订阅加载数据表加载成功事件为例。

订阅事件:

取消订阅事件:

检查订阅事件:

定义事件处理函数:

抛出事件:

当事件被抛出后,订阅过此事件的事件处理函数就会得到响应。

相关 API 参考手册

 

最后编辑:
作者:Ellan
GameFramework.cn 著名开源 Unity 游戏框架作者,曾就职于搜狐畅游、SOFTSTAR、KABAM 等公司,参与过《天龙八部端游》、《天龙八部手游》、《亚瑟王国》等项目。
捐 赠Game Framework 还在不断地发展,感谢大家的支持!

事件使用手册》有 2 条评论

  1. 彭龙 说:

    我照文档写了代码,但是OnLoadDataTableSuccess和OnLoadDataTableFailure都没有被执行,也没有任何报错,不知道什么地方出了问题,能帮我解答一下吗?

    public class Test : MonoBehaviour {

    // Use this for initialization
    void Start () {
    //GameEntry
    EventComponent eventComponent = GameEntry.GetComponent();
    eventComponent.Subscribe(LoadDataTableSuccessEventArgs.EventId, OnLoadDataTableSuccess);
    eventComponent.Subscribe(LoadDataTableFailureEventArgs.EventId, OnLoadDataTableFailure);

    DataTableComponent dataTableComponent = GameEntry.GetComponent();
    dataTableComponent.LoadDataTable(“Card”, “Asset/DataTables/Card.csv”,LoadType.Text);
    }

    // Update is called once per frame
    void Update () {

    }

    private void OnLoadDataTableSuccess(object sender,GameFrameworkEventArgs e)
    {
    LoadDataTableSuccessEventArgs ne = e as LoadDataTableSuccessEventArgs;
    Log.Info(“Laod data table {0} success”, ne.DataTableName);
    }

    private void OnLoadDataTableFailure(object sender, GameFrameworkEventArgs e)
    {
    LoadDataTableFailureEventArgs ne = e as LoadDataTableFailureEventArgs;
    Log.Info(“Load data table {0} failure”,ne.DataTableName);
    }
    }

    • Ellan 说:

      首先要看下框架是否正常运行了(主要是Update是否正确调度),建议直接用框架里自带的prefab进行初始化

留下一个回复

你的email不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据