1.單例模式,如下
using UnityEngine;using System.Collections;public class Singleton<T> : MonoBehaviour where T : MonoBehaviour{ /** Returns the instance of this singleton. */ PRivate static T _instance; public static T Instance { private set { _instance = value; } get { if (_instance == null) _instance = GameObject.FindObjectOfType<T>(); if (_instance == null) Debug.LogError(typeof(T) + " Instance is null"); return _instance; } } protected virtual void OnDestroy() { Instance = null; }}2.使用 繼承于上面的代碼 例子如下(這是個(gè)配置表的類,一般鍵值轉(zhuǎn)換要弄一個(gè)單例類,互相不影響,這個(gè)右后有空再說,這邊只是舉個(gè)例子如何使用單例) 用的結(jié)構(gòu)public class DataController : Singleton
public class DataController : Singleton<DataController> { public KeyValue _keyValue; public KeyValueConfigure[] keyValue; public KeyValueConfigure ChooseWhichData(int id) { return keyValue[id]; } public GameObject ChooseGeneratorPrefabs(ObstacleType name) { foreach(var o in _keyValue._list) { if(o.type == name) { return o.prefabs; } } return null; }}3.調(diào)用 : DataController.Instance.ChooseWhichData(0);
|
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注