Pull up singleton behaviour.

This commit is contained in:
2023-11-29 13:12:19 +08:00
parent 522699152b
commit e339ec3e4c
7 changed files with 48 additions and 36 deletions

View File

@@ -1,24 +1,13 @@
using System;
using Cryville.Common.Unity;
using UnityEngine;
namespace Cryville.Crtr.UI {
internal class Master : MonoBehaviour {
static Master s_instance;
public static Master Instance { get { return s_instance; } }
internal class Master : SingletonBehaviour<Master> {
#pragma warning disable IDE0044
[SerializeField]
private GameObject m_menu;
#pragma warning restore IDE0044
void Awake() {
if (s_instance != null) {
Destroy(gameObject);
throw new InvalidOperationException("Attempted to initialize a singleton twice.");
}
s_instance = this;
}
internal void ShowMenu() { m_menu.SetActive(true); }
internal void HideMenu() { m_menu.SetActive(false); }

View File

@@ -1,3 +1,4 @@
using Cryville.Common.Unity;
using Cryville.Common.Unity.UI;
using Cryville.Crtr.Browsing.UI;
using System.Collections.Generic;
@@ -6,7 +7,7 @@ using UnityEngine;
using unity = UnityEngine;
namespace Cryville.Crtr.UI {
public class Menu : MonoBehaviour {
internal class Menu : SingletonBehaviour<Menu> {
#pragma warning disable IDE0044
[SerializeField]
ResourceBrowserMaster m_browserMaster;
@@ -24,7 +25,7 @@ namespace Cryville.Crtr.UI {
bool initialized = false;
int totalTasks = 0;
#pragma warning disable IDE0051
void Awake() {
protected override void Awake() {
Game.Init();
m_contents.SetActive(true);
PushTitle("Chart Browser");

View File

@@ -1,23 +1,11 @@
using System;
using Cryville.Common.Unity;
using UnityEngine;
using UnityEngine.UI;
namespace Cryville.Crtr.UI {
public class PopupManager : MonoBehaviour {
static PopupManager s_instance;
public static PopupManager Instance { get { return s_instance; } }
public class PopupManager : SingletonBehaviour<PopupManager> {
[SerializeField]
GameObject m_popupPrefab;
void Awake() {
if (s_instance != null) {
Destroy(gameObject);
throw new InvalidOperationException("Attempted to initialize a singleton twice.");
}
s_instance = this;
}
public void Create(string msg) {
Instantiate(m_popupPrefab, transform, false).GetComponent<Popup>().Message = msg;
}