基于unity的单例设计模式写法

Posted 萨瓦迪卡麦兜兜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了基于unity的单例设计模式写法相关的知识,希望对你有一定的参考价值。

设计模式有23中,都是为了解藕设计的。就先拿单例设计模式说说把。因为平常最起码你也得用到单例设计先弄一个泛型的单例模板代码如下:

 1 //泛型的单例设计模式。项目中用的多
 2 public class GameController<T> : MonoBehaviour where T :GameController<T> {
 3     private static T _instance;
 4     public static T Instance
 5     {
 6         get
 7         {
 8             if (_instance == null)
 9             {
10                 _instance = FindObjectOfType<T>();
11             }
12             return _instance;
13         }
14     }
15 }

再写一个脚本把函数继承自这个单例脚本就可以了

 1 public class GameStart : GameController<GameStart> {
 2 
 3     public void Show(GameObject go)
 4     {
 5         go.SetActive(true);
 6 
 7     }
 8     void Awake()
 9     {
10        
11         Debug.Log(11);
12     }
13 }

然后我这个脚本因为继承了泛型单例,它就是一个单例了。然后我在弄个脚本就可以调用了。

1 public class XXX : MonoBehaviour {
2 
3     public GameObject prefabs;
4     void Start () {
5         GameStart.Instance.Show(prefabs);
6     }
7     
8 }

以上是关于基于unity的单例设计模式写法的主要内容,如果未能解决你的问题,请参考以下文章

Unity单例模式(普通单例和继承MonoBehaviour的单例)

Unity 单例写法

一日一技:Python 下面最简单的单例模式写法

使用 Unity 的单例模式

你见过这样的单例模式吗?

Unity3D中的单例模式