Unity 关于 PlayerPrefs

public  class CountModle
{
    public CountModle()
    {
        bool isFirstInitialization = true; // 添加标记以识别初次初始化
		//属性更新事件
        counter.OnChangeEvent += count =>
        {
            if (!isFirstInitialization) // 避免初次设置时保存
            {
                PlayerPrefs.SetInt("COUNTER_COUNT", count);
            }
            else
            {
                isFirstInitialization = false; // 初始化完成后,标记为已初始化
            }
        };

        // 现在初始化Count.Value,由于事件处理器已有逻辑避免初次保存,直接设置即可
        counter.PropertyValue = PlayerPrefs.GetInt("COUNTER_COUNT", 0);
    }
    public  BindableProperty<int> counter = new BindableProperty<int>() ; 
}

PlayerPrefs 是 Unity 游戏引擎提供的一种简易数据持久化解决方案,主要用于在本地存储玩家的偏好设置和一些小型游戏数据。它是基于键值对(key-value pair)的形式来工作的,允许开发者存储和检索基本数据类型,如整数(int)、浮点数(float)和字符串(string)。

主要用途包括但不限于:
保存游戏进度:例如,玩家完成的关卡、得分、收集的物品等。
用户偏好设置:比如音量控制、屏幕亮度、控制灵敏度等玩家可自定义的选项。
登录凭证(简单的):有时用于存储用户名或游戏内部的认证信息,但需注意安全风险,不适用于敏感信息。
关键方法:
保存数据:

PlayerPrefs.SetInt(key, value):保存整数。
PlayerPrefs.SetFloat(key, value):保存浮点数。
PlayerPrefs.SetString(key, value):保存字符串。
读取数据:

PlayerPrefs.GetInt(key, defaultValue):读取整数,如果没有则返回默认值。
PlayerPrefs.GetFloat(key, defaultValue):读取浮点数,如果没有则返回默认值。
PlayerPrefs.GetString(key, defaultValue):读取字符串,如果没有则返回默认值。
删除数据:

PlayerPrefs.DeleteKey(key):删除指定键的值。
PlayerPrefs.ClearAll():清除所有保存的数据。
注意事项:

安全性:PlayerPrefs不适合存储敏感信息,因为数据未加密且容易被修改。
容量限制:虽然具体限制取决于平台,但通常PlayerPrefs不应用于存储大量数据,因为它会占用用户设备的存储空间,并可能导致性能问题。
跨平台兼容性:PlayerPrefs在不同平台上的表现可能有差异,开发者需要考虑兼容性问题。
数据持久性:数据在应用卸载或清理缓存时可能会丢失,但通常在应用升级过程中得以保留。
PlayerPrefs提供了一种快速简便的方式处理轻量级数据存储,适用于不需要复杂数据结构或高度安全性的场景。对于更复杂的数据管理需求,开发者可能需要考虑使用SQLite数据库或其他更高级的存储解决方案。

  • 8
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值