using System; using System.Collections; using System.Collections.Generic; using JetBrains.Annotations; using UnityEngine; public class CardEventOS : MonoBehaviour { public static CardEventOS Instance { get; private set; } private CardLockSvc cardLockSvc; private CardEventSvc cardEventSvc; private void Awake() { if (Instance != null && Instance != this) { Destroy(gameObject); return; } Instance = this; cardLockSvc = new CardLockSvc(); cardEventSvc = new CardEventSvc(); DontDestroyOnLoad(gameObject); } // *************** 锁 **************** public bool LOCK_APPLY(CardEventData.LOCK_EXCLUSIVE_CARD_ENUM lock_name) => cardLockSvc.LOCK_APPLY(lock_name); public void LOCK_RELEASE(CardEventData.LOCK_EXCLUSIVE_CARD_ENUM lock_name) => cardLockSvc.LOCK_RELEASE(lock_name); public bool LOCK_GET(CardEventData.LOCK_EXCLUSIVE_CARD_ENUM lock_name) => cardLockSvc.LOCK_GET(lock_name); // *************** 事件系统 **************** public void EVENT_REGISTER(CardEventData.EVENT_REGISTER_CARD_ENUM event_name, Action callback) where T : struct => cardEventSvc.EVENT_REGISTER(event_name, callback); public void EVENT_TRIGGER(CardEventData.EVENT_REGISTER_CARD_ENUM event_name, object data) => cardEventSvc.EVENT_TRIGGER(event_name, data); // public void EVENT_UNREGISTER(CardEventData.EVENT_REGISTER_CARD_ENUM event_name, Action callback) => // cardEventSvc.EVENT_UNREGISTER(event_name, callback); }