I cant subscribe to my event manager ? What should I do?

This is my event manager

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class EventRegister: MonoBehaviour
{

    #region Singelton
    private static EventRegister _current;
    public static EventRegister Current
    {
        get
        {
            if (_current == null)
            {
                GameObject go = new GameObject("EventRegister");
                go.AddComponent<EventRegister>();
            }
            return _current;
        }
    }
    #endregion

    [SerializeField]
    private string subscribedEvent = string.Empty;
    public delegate void RegisteredEvent();
    public static event RegisteredEvent OnReceivedEvent;
    public static Dictionary<string, List<EventRegister>> eventRegister = new Dictionary<string, List<EventRegister>>();



    private void Awake()
    {
        _current = this;
        EventRegister.SubscribeEvent(this);
    }

    private void OnDestroy()
    {
        EventRegister.UnsubscribeEvent(this);
    }


    public void ReceiveEvent()
    {
        if (OnReceivedEvent != null)
        {
            OnReceivedEvent();
        }
    }
    

    public static void SendEvent(string eventName)
    {
        
        if (eventName == string.Empty)
        {
            return;
        }
        if (EventRegister.eventRegister.ContainsKey(eventName))
        {
            List<EventRegister> list = EventRegister.eventRegister[eventName];
            foreach (EventRegister eventRegister in list)
            {
                eventRegister.ReceiveEvent();
            }
        }
    }

    public void SwitchEvent(string eventName)
    {
        EventRegister.UnsubscribeEvent(this);
        this.subscribedEvent = eventName;
        EventRegister.SubscribeEvent(this);
    }

    public static void SubscribeEvent(EventRegister register)
    {
        string key = register.subscribedEvent;
        List<EventRegister> list;
        if (EventRegister.eventRegister.ContainsKey(key))
        {
            list = EventRegister.eventRegister[key];
        }
        else
        {
            list = new List<EventRegister>();
            EventRegister.eventRegister.Add(key, list);
        }
        list.Add(register);
    }

    public static void UnsubscribeEvent(EventRegister register)
    {
        string key = register.subscribedEvent;
        if (EventRegister.eventRegister.ContainsKey(key))
        {
            List<EventRegister> list = EventRegister.eventRegister[key];
            if (list.Contains(register))
            {
                list.Remove(register);
            }
            if (list.Count <= 0)
            {
                EventRegister.eventRegister.Remove(key);
            }
        }
    }
}

This is my enemy I want to subscribe to the event manager
I am able to send the string as event

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Enemy: MonoBehaviour
{

    // Enemy Life System Variables
    private float _enemyLife = 20f;


    void FixedUpdate()
    {
        //enemy life system
        EnemyLifeSystem();
}

    //enemy life system
    void EnemyLifeSystem()
    {
        // kill enemy
        if (_enemyLife <= 0)
        {
            DeathEvent();
            KillEnemy();
        }
    }

    public void DeathEvent()
    {
        EventRegister.SubscribeEvent();
        EventRegister.SendEvent("Die");
        
    }

    // kill enemy
    public void KillEnemy()
    {
        Destroy(_enemyGO);
    }
}

This is the listener Don’t mind the name

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class DebugScripts : MonoBehaviour
{
   

    // Start is called before the first frame update
    void Start()
    {
        EventRegister.OnReceivedEvent += this.Setup;
    }

    // Update is called once per frame
    void Update()
    {
        
    }

    public void Setup()
    {
        Debug.Log("Yaooooo ");
    }
}

Naw I don’t know how to subscribe to the event any solutions?

For short, you need to add EventRegister.Current.SwitchEvent(“Die”); before EventRegister.SendEvent(“Die”);

However, From your Event manager, shows that in order to subscribe an Event, you need to pass in an EventRegister. But your EventRegister is a Singleton. Which you will only be having one instance of the Class. Which mean no matter what is the event string you sent, as long as the subscribedEvent is same, all event subscribe in the EventRegister.OnReceivedEvent will be trigger.

,For short, you need to add EventRegister.Current.SwitchEvent(“Die”); before EventRegister.SendEvent(“Die”);

However, From your Event manager, shows that in order to subscribe an Event, you need to pass in an EventRegister. But your EventRegister is a Singleton. Which you will only be having one instance of the Class. Which mean no matter what is the event string you sent, as long as the subscribedEvent is same, all event subscribe in the EventRegister.OnReceivedEvent will be trigger.