栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 游戏开发 > 其他

C#在unity的泛型单例

其他 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C#在unity的泛型单例

C#—unity

C#在unity的泛型单例

你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。

什么是单例模式?

是最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式,可以直接访问,不需要实例化该类的对象。

单例模式的使用

我们在使用Unity开发游戏得时候,很多游戏得管理类都是只有一个的。就好像GameMnanager、UIManager这些管理脚本都是唯一的,由一个GameObject游戏运行就可以了,这个时候GameManager、UIManager就可以是一个单例类.单例模式就是为了保证不多创建这种类,来节省消耗,另外实例是全局变量,让获取也变得方便.

例子:
//UI管理器
public class MyUIManager
{
    //静态唯一对象
    private static MyUIManager _instance;
 
    public static MyUIManager GetInstance()
    {
        if (_instance == null)
            _instance = new MyUIManager();
        return _instance;
    }
}
什么是泛型单例?

在游戏中可能会有多个单例类,有时候我们为了方便创建,可以先创建一个泛型单例模板,只要哪个类需要用到单例的使用,就是去继承这个泛型单例模板类就可以了。

例子:

//通过泛型基类 在基类中实现实例化单例方法
public class BaseInstance where T : new()
{
    private static T _instance;
    public static T GetInstance()
    {
        if (_instance == null)
        _instance = new T();
        return _instance;
    }
}
//任意的单例类 只需要继承基类就可以少些一些代码了
public class MyUIManager : BaseInstance
{
 
}

泛型单例模式与普通单例模式的区别:

普通单例模式:直接在相应脚本(如脚本A)中设置为单例模式,然后在其他脚本(脚本B)调用有单例模式的脚本(脚本A)功能或方法时能直接调用,而不用在awake或者start方法中引用一遍脚本(脚本A),但是当项目管理脚本比较多时,可能每个管理脚本都需要做成单例模式,如果使用普通的单例模式每个都设置一遍也不是不可以,但是泛型单例模式更方便。
泛型单例模式:新创建一个泛型单例模式的脚本,继承于该泛型单例模式脚本的类都可以直接成为单例模式,而不用单独设置;

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/901598.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号