2025-11-13 02:58:03 +08:00

42 lines
1.5 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using JetBrains.Annotations;
using UnityEngine;
public class CardOS : MonoBehaviour
{
public static CardOS 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(CardOSData.LOCK_EXCLUSIVE_CARD_ENUM lock_name) => cardLockSvc.LOCK_APPLY(lock_name);
public void LOCK_RELEASE(CardOSData.LOCK_EXCLUSIVE_CARD_ENUM lock_name) => cardLockSvc.LOCK_RELEASE(lock_name);
public bool LOCK_GET(CardOSData.LOCK_EXCLUSIVE_CARD_ENUM lock_name) => cardLockSvc.LOCK_GET(lock_name);
// *************** 事件系统 ****************
public void EVENT_REGISTER<T>(CardOSData.EVENT_REGISTER_CARD_ENUM event_name, Action<T> callback) where T : struct =>
cardEventSvc.EVENT_REGISTER(event_name, callback);
public void EVENT_TRIGGER(CardOSData.EVENT_REGISTER_CARD_ENUM event_name, object data) =>
cardEventSvc.EVENT_TRIGGER(event_name, data);
public void EVENT_UNREGISTER<T>(CardOSData.EVENT_REGISTER_CARD_ENUM event_name, Action<T> callback) where T : struct =>
cardEventSvc.EVENT_UNREGISTER(event_name, callback);
}