【100个 Unity小知识点】 | Unity中常用的几种单例写法

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;
  }
  • 32
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

呆呆敲代码的小Y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值