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

本文探讨如何在Unity中利用事件机制实现代码解耦。传统方式需要通过对象实例调用方法,但在复杂项目中变得不便。通过事件,类可以发起事件而无需直接引用其他类的实例,简化了类间交互。借助事件,可以类比于用第三个容器来调换两个容器中的水,使得问题变得简单。文中提供了示例demo供下载参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

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 Ev
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值