/// <summary> /// 惰式初始化 /// </summary> public static void Init() { if (_isInited) { return; } var settingPath = string.Format("I18N/{0}{1}", Lang, AppEngine.GetConfig(KEngineDefaultConfigs.SettingExt)); var settingReader = SettingModule.Get(settingPath, false); foreach (var row in settingReader) { Strs[row["Id"]] = row["Value"]; } #if UNITY_EDITOR // 开发热重载 if (SettingModule.IsFileSystemMode) { SettingModule.WatchSetting(settingPath, (_) => { _isInited = false; }); } #endif _isInited = true; }
/// <summary> /// Get the singleton /// </summary> /// <returns></returns> public static SubdirSubSubDirExample3Settings GetInstance() { if (_instance == null) { _instance = new SubdirSubSubDirExample3Settings(); _instance._ReloadAll(true); #if UNITY_EDITOR if (SettingModule.IsFileSystemMode) { for (var j = 0; j < TabFilePaths.Length; j++) { var tabFilePath = TabFilePaths[j]; SettingModule.WatchSetting(tabFilePath, (path) => { if (path.Replace("\\", "/").EndsWith(path)) { _instance.ReloadAll(); Log.LogConsole_MultiThread("Reload success! -> " + path); } }); } } #endif } return(_instance); }
/// <summary> /// Get the singleton /// </summary> /// <returns></returns> public static GameConfigSettings GetInstance() { if (ReloadCount == 0) { _instance._ReloadAll(true); #if UNITY_EDITOR if (SettingModule.IsFileSystemMode) { for (var j = 0; j < TabFilePaths.Length; j++) { var tabFilePath = TabFilePaths[j]; SettingModule.WatchSetting(tabFilePath, (path) => { if (path.Replace("\\", "/").EndsWith(path)) { _instance.ReloadAll(); Log.LogConsole_MultiThread("File Watcher! Reload success! -> " + path); } }); } } #endif } return(_instance); }
/// <summary> /// 惰式初始化 /// </summary> public static void Init() { if (_isInited) { return; } Strs.Clear(); //读取语言包 var lang_file = $"I18N/lang{AppConfig.LangFileFlag}.txt"; var bytes = KResourceModule.LoadAssetsSync(SettingModule.GetSettingFilePath(lang_file)); var fileContent = Encoding.UTF8.GetString(bytes); TextParser.ParseText(fileContent, Strs); #if UNITY_EDITOR // 开发热重载 if (SettingModule.IsFileSystemMode) { SettingModule.WatchSetting(lang_file, (_) => { _isInited = false; }); } #endif _isInited = true; }
IEnumerator Start() { KGameSettings.Instance.InitAction += OnGameSettingsInit; var engine = KEngine.AppEngine.New( gameObject, new IModule[] { //KGameSettings.Instance, }, null, null); while (!engine.IsInited) { yield return(null); } KUIModule.Instance.OpenWindow <KUIDemoHome>(); KUIModule.Instance.CallUI <KUIDemoHome>(ui => { // Do some UI stuff }); Debug.Log("[SettingModule]Table: " + ExampleInfo.TabFilePath); var exampleInfoTable = SettingModule.Get <ExampleInfo>(ExampleInfo.TabFilePath); foreach (var info in exampleInfoTable.GetAll()) { Debug.Log(string.Format("Name: {0}", info.Name)); } }
/// <summary> /// Do reload the setting file: GameConfig /// </summary> void _ReloadAll(bool throwWhenDuplicatePrimaryKey, string customContent = null) { for (var j = 0; j < TabFilePaths.Length; j++) { var tabFilePath = TabFilePaths[j]; TableFile tableFile; if (customContent == null) { tableFile = SettingModule.Get(tabFilePath, false); } else { tableFile = TableFile.LoadFromString(customContent); } using (tableFile) { foreach (var row in tableFile) { var pk = GameConfigSetting.ParsePrimaryKey(row); GameConfigSetting setting; if (!_dict.TryGetValue(pk, out setting)) { setting = new GameConfigSetting(row); _dict[setting.Id] = setting; } else { if (throwWhenDuplicatePrimaryKey) { throw new System.Exception(string.Format("DuplicateKey, Class: {0}, File: {1}, Key: {2}", this.GetType().Name, tabFilePath, pk)); } else { setting.Reload(row); } } } } } if (OnReload != null) { OnReload(); } ReloadCount++; Log.Info("Reload settings: {0}, Row Count: {1}, Reload Count: {2}", GetType(), Count, ReloadCount); }
/// <summary> /// Do reload the setting file: SubdirSubSubDirExample3 /// </summary> void _ReloadAll(bool throwWhenDuplicatePrimaryKey) { for (var j = 0; j < TabFilePaths.Length; j++) { var tabFilePath = TabFilePaths[j]; using (var tableFile = SettingModule.Get(tabFilePath, false)) { foreach (var row in tableFile) { var pk = SubdirSubSubDirExample3Setting.ParsePrimaryKey(row); SubdirSubSubDirExample3Setting setting; if (!_dict.TryGetValue(pk, out setting)) { setting = new SubdirSubSubDirExample3Setting(row); _dict[setting.Id] = setting; } else { if (throwWhenDuplicatePrimaryKey) { throw new System.Exception(string.Format("DuplicateKey, Class: {0}, File: {1}, Key: {2}", this.GetType().Name, tabFilePath, pk)); } else { setting.Reload(row); } } } } } if (OnReload != null) { OnReload(); } }
private static void Host_PostWirelessSetting(object sender, Chromium.Remote.Event.CfrV8HandlerExecuteEventArgs e) { try { int wirelessNumber = e.Arguments[0].IntValue; int frequency = e.Arguments[1].IntValue; Task.Factory.StartNew(() => { SettingModule settingModule = SettingReceived(); try { ViewCallFunction.ViewWirelessMessage("打开模块设置功能。"); byte[] by = PortAgreement.OpenModular(); SerialPortManager.WriteSerialPortData(SerialPortManager.Device1, by); Thread.Sleep(20); #region 设置模块发送ID for (int i = 0; i < 3; i++) { settingModule.SettingOver = false; ViewCallFunction.ViewWirelessMessage("设置模块发送ID(编号)。"); by = PortAgreement.SetModuleTid(wirelessNumber); SerialPortManager.WriteSerialPortData(SerialPortManager.Device1, by); Thread.Sleep(250); if (settingModule.SettingOver) { break; } } for (int i = 0; i < 3; i++) { settingModule.SettingOver = false; ViewCallFunction.ViewWirelessMessage("设置模块接收ID(编号)。"); by = PortAgreement.SetModuleRid(wirelessNumber); SerialPortManager.WriteSerialPortData(SerialPortManager.Device1, by); Thread.Sleep(250); if (settingModule.SettingOver) { break; } } for (int i = 0; i < 3; i++) { settingModule.SettingOver = false; ViewCallFunction.ViewWirelessMessage("设置模块频率。"); by = PortAgreement.SetModuleFrequency(frequency); SerialPortManager.WriteSerialPortData(SerialPortManager.Device1, by); Thread.Sleep(250); if (settingModule.SettingOver) { break; } } for (int i = 0; i < 3; i++) { settingModule.SettingOver = false; ViewCallFunction.ViewWirelessMessage("设置模块回传功能。"); by = PortAgreement.SetModuleComesBack(1); SerialPortManager.WriteSerialPortData(SerialPortManager.Device1, by); Thread.Sleep(250); if (settingModule.SettingOver) { break; } } ViewCallFunction.ViewWirelessMessage("关闭模块设置功能。"); by = PortAgreement.CloseModular(); SerialPortManager.WriteSerialPortData(SerialPortManager.Device1, by); Thread.Sleep(20); for (int i = 0; i < 3; i++) { settingModule.SettingOver = false; ViewCallFunction.ViewWirelessMessage("发送数据测试。"); by = PortAgreement.SetModular("ABCDEF"); SerialPortManager.WriteSerialPortData(SerialPortManager.Device1, by); Thread.Sleep(250); if (settingModule.SettingOver) { break; } } #endregion 设置模块发送ID } catch (Exception ex) { Log4Helper.ErrorInfo(ex.Message, ex); ViewCallFunction.ViewAlert(ex.Message); } finally { OverTimeManager.Stop(); ViewCallFunction.ViewWirelessOver(); } }); } catch (Exception ex) { Log4Helper.ErrorInfo(ex.Message, ex); ViewCallFunction.ViewAlert(ex.Message); } }
private static void Host_PostWirelessSearch(object sender, Chromium.Remote.Event.CfrV8HandlerExecuteEventArgs e) { try { Task.Factory.StartNew(() => { SettingModule settingModule = SettingReceived(); OverTimeManager.Stop(); byte[] by; try { for (int i = 1; i <= 64; i++) { if (m_StopWirelessSearch) { break; } ViewCallFunction.ViewWirelessMessage($"搜索目标频率{i}/64。"); //ViewCallFunction.ViewWirelessMessage("打开模块设置功能。"); by = PortAgreement.OpenModular(); SerialPortManager.WriteSerialPortData(SerialPortManager.Device1, by); Thread.Sleep(20); for (int j = 0; j < 3; j++) { if (m_StopWirelessSearch) { break; } settingModule.SettingOver = false; ViewCallFunction.ViewWirelessMessage("设置模块频率。"); by = PortAgreement.SetModuleFrequency(i); SerialPortManager.WriteSerialPortData(SerialPortManager.Device1, by); Thread.Sleep(250); if (settingModule.SettingOver) { break; } } for (int j = 0; j < 3; j++) { if (m_StopWirelessSearch) { break; } settingModule.SettingOver = false; //ViewCallFunction.ViewWirelessMessage("设置模块回传功能。"); by = PortAgreement.SetModuleComesBack(1); SerialPortManager.WriteSerialPortData(SerialPortManager.Device1, by); Thread.Sleep(250); if (settingModule.SettingOver) { break; } } //ViewCallFunction.ViewWirelessMessage("关闭模块设置功能。"); by = PortAgreement.CloseModular(); SerialPortManager.WriteSerialPortData(SerialPortManager.Device1, by); Thread.Sleep(20); for (int j = 0; j < 3; j++) { if (m_StopWirelessSearch) { break; } settingModule.SettingOver = false; ViewCallFunction.ViewWirelessMessage("发送数据测试。"); by = PortAgreement.SetModular("ABCDEF"); SerialPortManager.WriteSerialPortData(SerialPortManager.Device1, by); Thread.Sleep(250); if (settingModule.SettingOver) { ViewCallFunction.ViewWirelessMessage($"无线频率 {i} 发现设备。"); break; } } } } catch (Exception ex) { Log4Helper.ErrorInfo(ex.Message, ex); ViewCallFunction.ViewAlert(ex.Message); } finally { m_StopWirelessSearch = false; ViewCallFunction.ViewWirelessOver(); } }); } catch (Exception ex) { Log4Helper.ErrorInfo(ex.Message, ex); ViewCallFunction.ViewAlert(ex.Message); } }
public void OnSaveBtnClick() { SettingModule settingModule = ModuleAPI.SettingModule; settingModule.SetBgmVolume(BgmSlider.value); }