当前位置:网站首页>unity-单例模式
unity-单例模式
2022-08-07 21:58:00 【真的没事鸭】
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;
}
}
边栏推荐
- How to use the keyboard to control the computer without a mouse How to use the keyboard instead of the mouse to move
- ECCV 2022 | 清华&腾讯AI Lab提出REALY: 重新思考3D人脸重建的评估方法
- 报错 - Junit 单元测试@Before没有执行
- tensorflow/serving部署keras的h5模型服务
- systemd 管理工具详解
- What to do if Win7 opens word and prompts "Cannot open file Normal because there is an error in the content"
- 【kali-权限提升】(4.2.2)社会工程学工具包:web站点克隆钓鱼
- golang方法的使用细节:参数默认是值拷贝,不仅仅是struct自定义数据类型也可以绑定方法、方法名称首字母大写为public权限、String()方法的使用
- SQL教程之 10 个终极 SQL JOIN 问题和答案
- win10系统玩部分老游戏时提示0xc0000022的解决方法.
猜你喜欢

流式计算中的 Window 计算

一个较重的代码坏味:“炫技式”的单行代码

低成本、大容量、高交互…Polkadot 引领 GameFi 实现新突破

数据仓库调度工具Azkaban的使用(一)

UE4 Sequence添加基础动画效果 (03-主序列的使用)
![[论文笔记] A Comprehensive Study on Learning-Based PE Malware Family Classification Methods](/img/6b/29faf9157f46fbd463a0f381946b8f.png)
[论文笔记] A Comprehensive Study on Learning-Based PE Malware Family Classification Methods

STC4054锂电池充电IC

复印机扫描功能怎么用 复印机里面的扫描怎么使用

2022G1工业锅炉司炉特种作业证考试题库模拟考试平台操作

Notebook computer memory that can hold laptop memory how to install
随机推荐
How to check your broadband account and password How to check your broadband account and password
2022G1工业锅炉司炉特种作业证考试题库模拟考试平台操作
UE4 Sequence adds basic animation effects (02-switch action)
一个较重的代码坏味:“炫技式”的单行代码
ECCV 2022 | 清华&腾讯AI Lab提出REALY: 重新思考3D人脸重建的评估方法
dp数组解决背包问题
Neo4j 基本使用创建并启动数据库
Dp array to solve knapsack problem
Notebook computer memory that can hold laptop memory how to install
How to read ten thousand lines of code
图数据建模从关系型数据到图数
Nifi configuration mysql_binlog reads
如何看懂万行代码
golang函数和方法的区别
leetcode 232. Implement Queue using Stacks 用栈实现队列(简单)
Leecode-SQL 1393. 股票的资本损益
苹果怎么装双系统 苹果电脑双系统安装教程
How to use the keyboard to control the computer without a mouse How to use the keyboard instead of the mouse to move
站在数字经济浪尖:360视觉云探路中小微企业数智转型
win10系统玩部分老游戏时提示0xc0000022的解决方法.