unity单例模式-目录
什么是单例模式
单例模式是一种常用的软件设计模式,指一个类只有一个实例,且提供一个全局访问的属性访问此单例。
那么在使用单例模式前我们要思考怎么获得一个实例?我们如果要在一个C#脚本中访问另外一个脚本,我们要在获取实例的时候就创建它,如果要在多个脚本中调用那么实例对象的创建和销毁将非常频繁,会占用大量的系统资源。
单例就可以解决这方面的问题,单例模式可以直接创建一个实例来全局调用,相当是一个全局共享的类,节省系统的资源。
优点
- 可以有效的减少内存开支,单例模式只有一个实例,避免频繁的创建和销毁对象,节省系统的资源
- 方便调用,共享资源,因为创建了一个全局共享的类
- 避免资源重复,例如一个写文件操作,由于只有一个实例存在内存中,避免对同一个资源文件的同时写操作
缺点
- 单例模式一般没有接口,他要想实现扩展十分困难
- 所有的类都可以访问,会造成类的关系混乱
- 造成代码臃肿,减低代码的可读性,可靠性
注:在项目要减少类对单例类的依赖,提高代码质量
脚本实例
游戏中GameManager通常要使用单例模式,下面就用它为例展示一下在C#脚本单例模式怎么实现
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class GameManager : MonoBehaviour
{
public static GameManager instance;
private void Awake()
{
if(instance!=null)
{
Destroy(gameObject);
}
instance = this;
}
}