OneShotOneKill/Assets/Script/UGUI/BackKey/BackKeyMgr.cs

59 lines
1.5 KiB
C#
Raw Normal View History

2026-01-07 21:27:42 +00:00
using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class BackKeyMgr : MonoBehaviour
{
[RuntimeInitializeOnLoadMethod]
static void OnRuntimeMethodLoad()
{
new GameObject("BackKeyMgr").AddComponent<BackKeyMgr>();
}
public static BackKeyMgr Ins;
List<Action> list_back = new List<Action>();
private void Awake()
{
Ins = this;
DontDestroyOnLoad(gameObject);
}
public void Run_AllBack()
{
while (list_back.Count > 0)
list_back[0]?.Invoke();
}
public void Add_Back(Action _back)
{
var act = list_back.Find(f => f == _back);
if (act == null)
list_back.Add(_back);
}
public void Del_Back(Action _back)
{
var act = list_back.Find(f => f == _back);
if (act != null)
list_back.Remove(_back);
}
private void Update()
{
if (Input.GetKeyDown(KeyCode.Escape))
{
if (list_back.Count > 0)
list_back[list_back.Count - 1]?.Invoke();
else
{
//if (ServerInfo.Ins.m_ServerData != null && InGameInfo.Ins && (InGameInfo.Ins.IsGameMode(eGameMode.Lobby) || InGameInfo.Ins.IsGameMode(eGameMode.MyFarm)))
// Popup.Ins.Set_QuitPopup();
//else if (GameUI.Ins != null && !MyValue.m_RealCamera.IsEnter())
// GameUI.Ins.IngameUI.m_PauseUI.Set();
}
}
}
}