unity利用事件机制解耦代码(四)

在某一个类调用另一个类里的方法的时候,往往需要这个类的实例,这在繁复的项目中,往往没有那么方便,需要在这个类中不断的通过对象图语言导航到我们需要的地方。但如果使用事件机制的,在这个类里发起一个事件,在另一个类了处理这个事件,就可以不需要这个实例对象,就能完成。

这里有两杯水,怎样将这两个杯子里的水调换一下呢?你需要第三只空杯子。事件机制,说实话也是这个道理,当你找到第三只杯子的时候,你就会觉得,没有什么难的了。

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Object = System.Object;

public class EventManager : MonoBehaviour
{

    private static EventManager _instance;
    /// <summary>
    /// 发起事件的字典
    /// </summary>
    private readonly Dictionary<string, System.Object> _dicIssue = new Dictionary<string, Object>();
    /// <summary>
    /// 处理事件的字典
    /// </summary>
    private Dictionary<string, List<Action<Object>>> _handleDictionary = new Dictionary<string, List<Action<object>>>();
    /// <summary>
    /// 单例
    /// </summary>
    /// <returns></returns>
    public static EventManager GetInstance()
    {
        if (_instance == null)
        {
            var go = GameObject.Find("game");
            if (go == null)
            {
                go = new GameObject("game");
            }
      
  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值