Files
ichni_Creator_Studio/Assets/Plugins/Dreamteck/Utilities/PrivateSingleton.cs
SoulliesOfficial 8d0abec75f 基础内容
必要插件安装
缓动曲线和动画基础
ElementFolder,Track与其次级模块,PathNode重构
2025-01-26 21:10:16 -05:00

53 lines
1.3 KiB
C#

namespace Dreamteck
{
using System.Linq;
using UnityEngine;
public class PrivateSingleton<T> : MonoBehaviour where T : Component
{
[SerializeField] protected bool _dontDestryOnLoad = true;
[SerializeField] protected bool _overrideInstance = false;
protected static T _instance;
protected virtual void Awake()
{
if (_instance != null && _instance != this)
{
if (_overrideInstance)
{
Destroy(_instance.gameObject);
_instance = this as T;
Init();
}
else
{
Destroy(this.gameObject);
}
}
else
{
_instance = this as T;
if (_dontDestryOnLoad)
{
DontDestroyOnLoad(gameObject);
}
Init();
}
}
protected virtual void Init()
{
}
protected virtual void OnDestroy()
{
if (_instance == this && !_overrideInstance)
{
_instance = null;
}
}
}
}