39 lines
837 B
C#
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()
|
|
{
|
|
|
|
}
|
|
}
|