侧边栏

Unity QFrameWork--Event

Event

using System;
namespace QFramework{
public class Event<T> where T : Event<T>
{
private static Action mOnEvent;
public static void Register(Action OnEvent){
mOnEvent += OnEvent;
}
public static void UnRegister(Action OnEvent){
mOnEvent -= OnEvent;
}
public static void Trigger(){
mOnEvent?.Invoke();
}
}
}

代码解释

使用泛型,不同的事件都能继承他,特定的事件类型。
有以下三种功能

  • 注册事件 Register
  • 注销事件 UnRegister
  • 触发事件 Trigger

用大白话讲就是你可以在一个事件中注册很多的函数,例如你扣了一滴血相对的就会触发许多函数

下面是示例

namespace QFramework.E.g{
public class GameStartEvent : Event<GameStartEvent>
{
}
public class Game : MonoBehaviour
{
void Start()
{
GameStartEvent.Register(OnGameStart);
}
private void OnGameStart()
{
transform.Find("Enemies").gameObject.SetActive(true);
}
void OnDestroy(){
GameStartEvent.UnRegister(OnGameStart);
}
}
// ... GameStartEvent.Trigger() 就会调用OnGameStart函数
}
posted @   Z-wzy  阅读(24)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示
电磁波切换