Files
gold_dolphin/unity/Assets/Script/Tools/Utils/MonoSingleton.cs
2026-06-20 19:35:25 +08:00

39 lines
837 B
C#

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public abstract class MonoSingleton<T> : MonoBehaviour where T : MonoBehaviour
{
public bool global=true;
private static T instance;
public static T Instance
{
get
{
if (instance == null)
instance = FindObjectOfType<T>();
return instance;
}
}
void Awake()
{
if (global)
{
if (instance != null && instance != this.gameObject.GetComponent<T>())
{
Destroy(this.gameObject);
return;
}
DontDestroyOnLoad(this.gameObject);
instance = this.gameObject.GetComponent<T>();
}
this.OnStart();
}
protected virtual void OnStart()
{
}
}