16.配置-Setting

GameFramework是一个用于游戏开发的框架,其用户配置模块主要用于保存和加载运行时的应用及用户数据,这些数据会被持久化到文件中。SettingComponent是入口类,它使用SettingManager进行管理,而SettingManager则依赖于ISettingHelper接口的实现,如DefaultSettingHelper和PlayerPrefsSettingHelper。DefaultSettingHelper是默认的配置管理器,它处理二进制序列化和反序列化,配置文件存储在GameFrameworkSetting.dat。配置的加载流程涉及读取文件并解析二进制配置数据。
摘要由CSDN通过智能技术生成

Gameframework用户配置

介绍

主要用来保存运行时的应用数据,用户数据等
可获取、设置,会持久化到文件

类介绍

SettingComponent
入口类
SettingManager
配置管理模块,功能委托给 ISettingHelper
ISettingHelper
配置加载解析和管理的实现接口
SettingHelperBase
DefaultSettingHelper
默认的配置管理
PlayerPrefsSettingHelper
玩家配置管理
使用 PlayerPrefs 保存
DefaultSetting
实际二进制序列化和管理默认配置
配置存放在 GameFrameworkSetting.dat
DefaultSettingSerializer
默认配置序列化

使用

    //  首先在 SettingComponent 选择使用 DefaultSettingHelper 还是 PlayerPrefsSettingHelper
    SettingComponent settingComponent = Entry.GetComponent<SettingComponent>();
    bool enableLog = settingComponent.GetBool("EnableLog", false);
    settingComponent.SetBool("EnableLog", true);
    settingComponent.Save();

配置加载流程

    SettingComponent.Start()
    {
        m_SettingManager.Load() // SettingManager.Load()
        {
            return m_SettingHelper.Load()   //  DefaultSettingHelper.Load()
            {
                m_FilePath = Path.Combine(Application.persistentDataPath, "GameFrameworkSetting.dat");
                using (FileStream fileStream = new FileStream(m_FilePath, FileMode.Open, FileAccess.Read))
                {
                    m_Serializer.Deserialize(fileStream)    //  DefaultSettingSerializer.Deserialize
                    {
                        //  读文件头标志和版本号
                        //  用版本号查找解析器 
                        m_DeserializeCallbacks.TryGetValue(version, out DeserializeCallback callback);

                        return callback(stream)     //  DefaultSettingHelper.DeserializeDefaultSettingCallback
                        {
                            m_Settings.Deserialize(stream)  //  DefaultSetting.Deserialize
                            {
                                //  !!!!!!!!! 解析二进制配置

                            }
                        }
                    }
                }
            }
        }
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值