using UnityEngine; using System.Collections; namespace RootMotion { /// /// The base abstract Singleton class. /// public abstract class Singleton: MonoBehaviour where T: Singleton { 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; } } }