123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178 |
- using UnityEngine;
- using UnityEngine.UI;
- using QFramework;
- using I2.Loc;
- using System;
- using CustomTool;
- using System.IO;
- namespace QFramework
- {
- public class PC_SettingPanelData : UIPanelData
- {
- }
- [Serializable]
- public class SettingInfo
- {
- public float keySpeedValue;
- public float mouseSpeedValue;
- public string language;
- public SettingInfo(float keySpeed = 0.5f, float mouseSpeed = 0.5f, string language = "Chinese")
- {
- this.keySpeedValue = keySpeed;
- this.mouseSpeedValue = mouseSpeed;
- this.language = language;
- }
- }
- public partial class PC_SettingPanel : UIPanel
- {
- protected override void ProcessMsg(int eventId, QMsg msg)
- {
- throw new System.NotImplementedException();
- }
- private SettingInfo initSettingInfo = new SettingInfo(0.5f, 0.5f, "Chinese");
- private SettingInfo configSettingInfo;
- private SettingInfo currentSettingInfo = new SettingInfo();
- protected override void OnInit(IUIData uiData = null)
- {
- mData = uiData as PC_SettingPanelData ?? new PC_SettingPanelData();
- // please add init code here
- LanguageDropdown.onValueChanged.AddListener(s =>
- {
- if (LocalizationManager.HasLanguage(GetLanguageKeyCode(LanguageDropdown.options[LanguageDropdown.value].text)))
- {
- LocalizationManager.CurrentLanguage = GetLanguageKeyCode((LanguageDropdown.options[LanguageDropdown.value].text));
- currentSettingInfo.language = LocalizationManager.CurrentLanguage;
- }
- });
- ConfirmBtn.onClick.AddListener(() =>
- {
- SaveSettingInfo(currentSettingInfo);
- UIKit.ClosePanel<PC_SettingPanel>();
- });
- CancelBtn.onClick.AddListener(() =>
- {
- LoadSetingInfo(configSettingInfo);
- UIKit.ClosePanel<PC_SettingPanel>();
- });
- ResetBtrn.onClick.AddListener(() =>
- {
- LoadSetingInfo(initSettingInfo);
- });
- keySpeedSlider.onValueChanged.AddListener(s =>
- {
- keySpeedValue.text = Mathf.RoundToInt(keySpeedSlider.value * 100).ToString() + "%";
- currentSettingInfo.keySpeedValue = keySpeedSlider.value;
- RoamCameraController.Instance.TranslateSpeed = keySpeedSlider.value * 20;
- });
- mouseSpeedSlider.onValueChanged.AddListener(s =>
- {
- mouseSpeedValue.text = Mathf.RoundToInt(mouseSpeedSlider.value * 100).ToString() + "%";
- currentSettingInfo.mouseSpeedValue = mouseSpeedSlider.value;
- RoamCameraController.Instance.MouseScrollMoveSpeed = mouseSpeedSlider.value * 2;
- });
- }
- protected override void OnOpen(IUIData uiData = null)
- {
- RecordSettingInfo();
- configSettingInfo = GetSettingInfo();
- if (configSettingInfo != null)
- {
- LoadSetingInfo(configSettingInfo);
- }
- else
- {
- Debug.LogError("当前为存在设置信息,重新创建");
- }
- }
- protected override void OnShow()
- {
- }
- protected override void OnHide()
- {
- }
- protected override void OnClose()
- {
- }
- public void RecordSettingInfo()
- {
- currentSettingInfo.keySpeedValue = keySpeedSlider.value;
- currentSettingInfo.mouseSpeedValue = mouseSpeedSlider.value;
- currentSettingInfo.language = GetLanguageKeyCode(LanguageDropdown.options[LanguageDropdown.value].text);
- }
- public void LoadSetingInfo(SettingInfo settingInfo)
- {
- keySpeedSlider.value = settingInfo.keySpeedValue;
- mouseSpeedSlider.value = settingInfo.mouseSpeedValue;
- RoamCameraController.Instance.TranslateSpeed = keySpeedSlider.value * 20;
- RoamCameraController.Instance.MouseScrollMoveSpeed = mouseSpeedSlider.value * 2;
- foreach (var item in LanguageDropdown.options)
- {
- if (GetLanguageKeyCode(item.text) == settingInfo.language)
- {
- LanguageDropdown.value = LanguageDropdown.options.IndexOf(item);
- if (LocalizationManager.HasLanguage(settingInfo.language))
- {
- LocalizationManager.CurrentLanguage = settingInfo.language;
- }
- break;
- }
- }
- }
- /// <summary>
- /// 获取相机配置数据
- /// </summary>
- /// <returns></returns>
- private SettingInfo GetSettingInfo()
- {
- // 拼接文件基本路径
- string filePath = PathHelper.CombineFilePath(PathHelper.m_ReadOnlyPath,
- "Json",
- "SettingInfo.json");
- string fileData = FileHelper.GetAllDataInfo(filePath);
- SettingInfo config = JsonUtility.FromJson<SettingInfo>(fileData);
- return config == null ? null : config;
- }
- public void SaveSettingInfo(SettingInfo info)
- {
- // 拼接文件基本路径
- string filePath = PathHelper.CombineFilePath(PathHelper.m_ReadOnlyPath,
- "Json",
- "SettingInfo.json");
- File.WriteAllText(filePath, JsonUtility.ToJson(info));
- }
- //语言Code转换
- public string GetLanguageKeyCode(string name)
- {
- if (name.Equals("简体中文") || name.Equals("中文"))
- {
- return "Chinese";
- }
- return name;
- }
- }
- }
|