基础内容
必要插件安装 缓动曲线和动画基础 ElementFolder,Track与其次级模块,PathNode重构
This commit is contained in:
52
Assets/Plugins/Dreamteck/Utilities/PrivateSingleton.cs
Normal file
52
Assets/Plugins/Dreamteck/Utilities/PrivateSingleton.cs
Normal file
@@ -0,0 +1,52 @@
|
||||
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;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user