Game_CodeMM/Assets/00_scripts/Events/CombatScenarioEventOS.cs
2025-11-18 16:43:59 +08:00

42 lines
1.7 KiB
C#

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<T>(EVENT_ENUM eventName, Action<T> callback) => _event_svc_handler.EVENT_REGISTER(eventName, callback);
public void EVENT_DISPATCH<T>(EVENT_ENUM eventName, T param) => _event_svc_handler.EVENT_DISPATCH(eventName, param);
public void EVENT_UNREGISTER<T>(EVENT_ENUM eventEnum, Action<T> callback) => _event_svc_handler.EVENT_UNREGISTER(eventEnum, callback);
}