u3d单例类

来源:互联网 发布:软件权限管理 编辑:程序博客网 时间:2024/06/05 16:42
public class Singleton<T> : MonoBehaviour where T : Singleton<T>    {        private static T instance;        public static T Instance        {            get            {                return instance;            }        }        /// <summary>        /// Returns whether the instance has been initialized or not.        /// </summary>        public static bool IsInitialized        {            get            {                return instance != null;            }        }        /// <summary>        /// Base awake method that sets the singleton's unique instance.        /// </summary>        protected virtual void Awake()        {            if (instance != null)            {                Debug.LogErrorFormat("Trying to instantiate a second instance of singleton class {0}", GetType().Name);            }            else            {                instance = (T) this;            }        }        protected virtual void OnDestroy()        {            if (instance == this)            {                instance = null;            }        }    }

如何使用

public class xxx: Singleton<xxx>
0 0