Game_CodeMM/Assets/00_scripts/Events/CombatScenarioEventOS.cs

42 lines
1.7 KiB
C#
Raw Normal View History

2025-11-18 01:08:04 +08:00
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class CombatScenarioEventOS : MonoBehaviour
{
public static CombatScenarioEventOS Instance { get; private set; }
2025-11-18 16:43:59 +08:00
private EventSvcLock _event_svc_lock;
private EventSvcHandler _event_svc_handler;
2025-11-18 01:08:04 +08:00
[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;
2025-11-18 16:43:59 +08:00
_event_svc_lock = new EventSvcLock();
_event_svc_handler = new EventSvcHandler();
2025-11-18 01:08:04 +08:00
DontDestroyOnLoad(gameObject);
}
2025-11-18 16:43:59 +08:00
// ================================
// 锁
// ================================
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);
2025-11-18 01:08:04 +08:00
}