Unity中的单例模式

本文探讨了在Unity游戏开发中如何利用单例模式处理全局唯一的数据和脚本交互。通过两种单例模式的实现,讨论了在场景切换时如何保持对象的持久化。当使用DontDestroyOnLoad()遇到物体重复问题时,提出了通过预制件和特殊脚本来确保只有一个实例的解决方案。
摘要由CSDN通过智能技术生成

因为经常需要一个唯一的变量来处理数据,实现脚本之间的交互等,这时如果全部都用静态变量来存储显然是不合适的

这时我们马上就会想到单例模式-

首先看一个普通的单例模式

public class GameData 
{
    private static GameData instance;

    public static GameData getInstance
    {
        get
        {
            if(instance == null)
            {
                instance = new GameData();
            }
            return instance;
        }
    }

}

这个只要在类里定义好数据变量然后GameData.getInstance.xx就能轻松获得这个唯一的变量,这还是很好用的


接下来是第二种单例,

public class GameData : MonoBehaviour
{
    public static GameData instace;

    void Start()
    {
        instace = this;
    }
}


在场景中创建一个空物体,然后将这个脚本拖到这物体上即可,即使物体在场景结束的时候会销毁,但是这样依旧能在游戏中全局地保存数据


但是有时候我们总会想在场景切换的时候保留上一个场景中的物体,该怎么办呢?


没错&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值