标签:知识点 Singleton instance Unity static 单例 写法
Unity 小科普
老规矩,先介绍一下 Unity 的科普小知识:
- Unity是 实时3D互动内容创作和运营平台 。
- 包括游戏开发、美术、建筑、汽车设计、影视在内的所有创作者,借助 Unity 将创意变成现实。
- Unity 平台提供一整套完善的软件解决方案,可用于创作、运营和变现任何实时互动的2D和3D内容,支持平台包括手机、平板电脑、PC、游戏主机、增强现实和虚拟现实设备。
- 也可以简单把 Unity 理解为一个游戏引擎,可以用来专业制作游戏!
Unity 小知识点学习
Unity中常用的几种单例写法
单例模式(Singleton Pattern) 保证一个类仅有一个实例,并提供一个访问它的全局访问点
单例模式优点
- 单例模式核心在于对于某个单例类,在系统中同时只存在唯一一个实例,并且该实例容易被外界所访问;
- 意味着在内存中,只存在一个实例,减少了内存开销;
单例模式的写法细分的话写法有很多种,但是核心都差不多,下面总结了几种最常用的单例模式提供参考,直接套用即可!
第一种:在Unity中最普通的单例写法,在Awake中获取,使用的时候直接调用即可
public static Singleton instance;
private void Awake()
{
instance = this;
}
第二种:持久化的写法,第一种的拓展,这种方法相比较第一种更可靠。在找不到单例方法时新建一个物体防止被销毁,然后接着调用即可
private static Singleton instance;
private void Awake()
{
instance = this;
}
public static Singleton GetInstance
{
if(instance==null)
{
GameObject go = new GameObject("Singleton"); // 创建一个新的GameObject
DontDestroyOnLoad(go); // 防止被销毁
_instance = go.AddComponent<Singleton>(); // 将实例挂载到GameObject上
}
return instance;
}
第三种:可以不用挂载到场景中(),使用的时候直接调用
private static Singleton instance;
public static Singleton GetInstance()
{
if(instance==null)
{
instance =new Singleton ();
}
return instance;
}
标签:知识点,Singleton,instance,Unity,static,单例,写法 来源: https://blog.csdn.net/zhangay1998/article/details/121608730
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。