using UnityEngine;
namespace RootMotion
{
///
/// Auto-instantiated singleton base class.
///
public abstract class LazySingleton : MonoBehaviour where T : LazySingleton
{
private static T sInstance = null;
public static bool hasInstance
{
get
{
return sInstance != null;
}
}
public static T instance
{
get
{
if (sInstance == null)
{
string name = typeof(T).ToString();
sInstance = new GameObject(name).AddComponent();
}
return sInstance;
}
}
protected virtual void Awake()
{
sInstance = (T)this;
}
}
}