You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
|
|
namespace RootMotion
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
|
|
|
/// Auto-instantiated singleton base class.
|
|
|
|
|
/// </summary>
|
|
|
|
|
public abstract class LazySingleton<T> : MonoBehaviour where T : LazySingleton<T>
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
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<T>();
|
|
|
|
|
}
|
|
|
|
|
return sInstance;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
protected virtual void Awake()
|
|
|
|
|
{
|
|
|
|
|
sInstance = (T)this;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|