using System; using System.Collections; using System.Collections.Generic; using UnityEngine; public class CombatScenarioEventOS : MonoBehaviour { public static CombatScenarioEventOS Instance { get; private set; } private EventSvcLock _event_svc_lock; private EventSvcHandler _event_svc_handler; [SerializeField] private bool needDebugLog = true; public void SetDebugLog(bool value) => needDebugLog = value; public bool GetNeedDebugLog() => needDebugLog; private void Awake() { if (Instance != null && Instance != this) { Destroy(gameObject); return; } Instance = this; _event_svc_lock = new EventSvcLock(); _event_svc_handler = new EventSvcHandler(); DontDestroyOnLoad(gameObject); } // ================================ // 锁 // ================================ public bool LOCK_APPLY(EVENT_EXCLUSIVE_LOCK lockName) => _event_svc_lock.LOCK_APPLY(lockName); public void LOCK_RELEASE(EVENT_EXCLUSIVE_LOCK lockName) => _event_svc_lock.LOCK_RELEASE(lockName); public bool LOCK_GET(EVENT_EXCLUSIVE_LOCK lockName) => _event_svc_lock.LOCK_GET(lockName); // ================================ // 事件 // ================================ public void EVENT_REGISTER(EVENT_ENUM eventName, Action callback) => _event_svc_handler.EVENT_REGISTER(eventName, callback); public void EVENT_DISPATCH(EVENT_ENUM eventName, T param) => _event_svc_handler.EVENT_DISPATCH(eventName, param); public void EVENT_UNREGISTER(EVENT_ENUM eventEnum, Action callback) => _event_svc_handler.EVENT_UNREGISTER(eventEnum, callback); }