[Unity技巧]单例基类
来源:互联网 发布:linux的dd命令详解 编辑:程序博客网 时间:2024/06/03 16:29
参考链接:http://www.redblack.cn/?p=100
在unity中有两种单例类型,一种是普通单例,即普通c#类,另一种是继承了MonoBehaviour的单例。
普通单例:
public abstract class CSharpSingletion<T> where T : new() { private static T instance; public static T Instance { get { if (instance == null) { instance = new T(); } return instance; } }}
using UnityEngine;using System.Collections;public class AudioSingletion : CSharpSingletion<AudioSingletion> { public int i = 1;}
using UnityEngine;using System.Collections;public abstract class MonoSingletion<T> : MonoBehaviour where T : MonoBehaviour { private static string rootName = "MonoSingletionRoot"; private static GameObject monoSingletionRoot; private static T instance; public static T Instance { get { if (monoSingletionRoot == null) { monoSingletionRoot = GameObject.Find(rootName); if (monoSingletionRoot == null) Debug.Log("please create a gameobject named " + rootName); } if (instance == null) { instance = monoSingletionRoot.GetComponent<T>(); if (instance == null) instance = monoSingletionRoot.AddComponent<T>(); } return instance; } }}
using UnityEngine;using System.Collections;public class MusicSingletion : MonoSingletion<MusicSingletion> { public void PrintInfo() { print("Music!!!!!!!!!!"); }}
1 0
- [Unity技巧]单例基类
- [Unity技巧]单例基类
- [Unity技巧]单例基类
- Unity 技巧
- [Unity技巧]vs相关技巧
- 【Unity】技巧集合
- Unity 技巧集合
- 【Unity】技巧集合
- 【Unity】技巧集合
- 【Unity】技巧集合
- Unity小技巧
- 【Unity】技巧集合
- Unity技巧集合
- 【Unity】技巧集合
- 【Unity】技巧集合
- 【Unity】技巧集合
- 【Unity】技巧集合
- unity的相关技巧
- C++刷题——1938: 首字母变大写
- 杭电ACM1312——Red and Black~~广搜
- 语音对讲---基于图灵机器人+科大讯飞
- Spark-storage
- 第一次学习python感受
- [Unity技巧]单例基类
- 黑马程序员-----Java基础-----集合框架详解
- Windows图形设备接口和绘图
- Spark-shuffle
- java线程间通信:生产者--消费者
- iOS多线程 -- dispatch队列
- YTU 2720: 删出多余的空格
- Spark-executor
- SVM理论openCV实现