侧边栏

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 @ 2025-01-08 00:28  Z-wzy  阅读(92)  评论(0)    收藏  举报