Unity单例模式(普通单例和继承MonoBehaviour的单例)
Posted Unity3D杂货铺
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Unity单例模式(普通单例和继承MonoBehaviour的单例)相关的知识,希望对你有一定的参考价值。
单例类是开发过程中必不可少的东西。介绍完两个常用单例类型后会介绍一个简单却很实用的MonoEvent。一样,代码都是截图,想复制源码的点阅读原文。
关于单例的写法网上有很多,这篇文章主要想介绍的是MonoEvent以及为之后的计时器做准备。还有就是以后的文章肯定会有好多涉及到单例模式的代码,为了不重复写,先把单例的类贴上来。
一.普通单例
最普通的写法,加了个线程锁,通过属性访问,不光是Unity,所有的c#程序都能用。直接上代码
普通单例类的构造有两种方式,看习惯,个人比较喜欢第一种,调用的时候可以少写一个单词一对括号。
1.通过继承单例基类
构造:
public class MyClass:Singleton<MyClass>{ }
调用:
MyClass.Instance.MethodName
2.不继承单例基类
构造:
public class MyClass { }
调用:
Singleton<MyClass>.Instance.MethodName
二.继承MonoBehaviour的单例
这个单例的使用要注意两点
1.不建议手动在Scene中的某个GameObject上挂载继承Mono的单例类,调用的时候代码会自动创建。
2. 除了后面的MonoEvent,尽量不要有其他的类继承MonoSingleton
(谷歌浏览器有个扩展应用叫 FireShot,可以截长图)
三.MonoEvent
很多时候,我们写的类并不想继承MonoBehaviour,但是我们又想这个类能够在Mono的生命周期里做一些事。比如Update,那么我们可以这样写
MonoEvent.Instance.UPDATE += MethodName
不得不说南京的江边还是很美的,大爷们很惬意,钓着鱼放着风筝听着收音机,伴随着过往船只的汽笛声,很是舒心。那里没有城市的喧嚣却又可以了解这座城市的过往。
以上是关于Unity单例模式(普通单例和继承MonoBehaviour的单例)的主要内容,如果未能解决你的问题,请参考以下文章