周六周日给自己放两天假,算法停两天~但是懒不能偷的,今天谈谈通知。
众所周知,unity中的代码是类似脚本语言的存在,那么问题来了,类与类之间是如何通信的。
第一时间想到的GetComponent函数,但这个方法我们并不知道是如何实现的,从网上得到的资料貌似这个方法性能不是很好,而且如果工程大了,里面的脚本数量上升到一定程度时,想想满天飞的GetComponent都头疼,维护起来肯定好不到哪去。这时候我们想到了观察者模式,再配合C#的委托事件机制,貌似可以解决这个问题,同样我希望把他们封装起来而不是散布在各个脚本中,所以根据通知模式有了一些通知中心。
我的想法是把委托封装出来存在字典中,废话不多说,直接上代码。
using UnityEngine;
using System.Collections;
using System.Collections.Generic;
using System;
/// <summary>
/// 通知中心,继承MonoBehavior的单例,用来处理各模块之间的消息传递
/// 本质其实就是观察者模式,可以参照java用接口观察者模式
/// C#用委托替换了接口实现了方法的传递,将委托存在字典对应的key值中
/// </summary>
public class NotificationCenter : MonoBehaviour {
#region 单例
//继承monobehavi

本文探讨了在Unity中如何利用观察者模式和C#的委托事件机制实现类间的通信,以解决大量使用GetComponent函数带来的性能和维护问题。作者提出了一种通过创建通知中心来封装委托的方法,尽管存在参数限制和性能损耗,但适用于一些Unity项目的模块间通信。文章还提及了使用回调处理模块内部通信的策略,并预告了后续关于回调的讨论。
最低0.47元/天 解锁文章
1279

被折叠的 条评论
为什么被折叠?



