16.配置-Setting

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
                            {
    
    
                                //  !!!!!!!!! 解析二进制配置

                            }
                        }
                    }
                }
            }
        }
    }

猜你喜欢

转载自blog.csdn.net/qmladm/article/details/130040816