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.
		
		
		
		
		
			
		
			
				
	
	
		
			41 lines
		
	
	
		
			850 B
		
	
	
	
		
			C#
		
	
			
		
		
	
	
			41 lines
		
	
	
		
			850 B
		
	
	
	
		
			C#
		
	
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;
 | 
						|
        }
 | 
						|
    }
 | 
						|
}
 |