Unity Singleton 单例类(Unity3D开发之二十)

猴子原创,欢迎转载。转载请注明: 转载自Cocos2Der-CSDN,,谢谢! 原文地址:

今天看到群里有朋友问unity单例的最佳实现方式,下面我我经常用的。贴出来供大家参考。

一、添加单例模板类using UnityEngine;public class Singleton<T> : MonoBehaviour where T : MonoBehaviour{private static T _instance;_lock = new object ();public static T Instance{get {if (applicationIsQuitting) {return null;}lock (_lock) {if (_instance == null) {_instance = (T)FindObjectOfType (typeof(T));if (FindObjectsOfType (typeof(T)).Length > 1) {return _instance;}if (_instance == null) {GameObject singleton = new GameObject ();_instance = singleton.AddComponent<T> ();singleton.name = “(singleton) ” + typeof(T).ToString ();DontDestroyOnLoad (singleton);}}return _instance;}}}applicationIsQuitting = false;(){applicationIsQuitting = true;}}

这是一个单例模板类,使用就很简单了。

二、定义自己的单例类using UnityEngine;using System;public class GameManager : Singleton<GameManager> {public float score;void Awake () {this.Init();}() {// Init code}}三、调用使用GameManager

如果有更好的实现方式,可以推荐下哦。

没有什么可凭仗,只有他的好身体,没有地方可去,

Unity Singleton 单例类(Unity3D开发之二十)

相关文章:

你感兴趣的文章:

标签云: