using UnityEngine; using System.Collections; namespace RootMotion { /// <summary> /// The base abstract Singleton class. /// </summary> public abstract class Singleton<T>: MonoBehaviour where T: Singleton<T> { private static T sInstance = null; public static T instance { get { return sInstance; } } protected virtual void Awake() { if (sInstance != null) Debug.LogError(name + "error: already initialized", this); sInstance = (T)this; } } }