using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using System.IO; using System.Text; public class ButtonPanel : MonoBehaviour { public GameObject SettingPanel; public Button RestoreDefaults; public Button SaveAndClose; public Text Showtext; public Slider BGMSlider; public Slider SESlider; public Toggle MuteToggle; public Transform FramePanel; public Transform ShowPanel; private System_Setting sys = new System_Setting(); string path; // Use this for initialization void Start() { path = Application.dataPath + "/System.json"; RestoreDefaults.onClick.AddListener(ResetClick); SaveAndClose.onClick.AddListener(SaveClick); MuteToggle.onValueChanged.AddListener(MuteChange); setValue(); } /// /// 静音按钮 /// /// private void MuteChange(bool arg0) { SESlider.interactable = !arg0; BGMSlider.interactable = !arg0; } /// /// 保存并退出 /// private void SaveClick() { sys.resolutionX = ShowPanel.GetComponent().ResolutionX; sys.resolutionY = ShowPanel.GetComponent().ResolutionY; sys.isFullScreen = ShowPanel.GetComponent().IsFullScreen; sys.bgmValue = BGMSlider.value; sys.seValue = SESlider.value; sys.isMuto = MuteToggle.isOn; for (int i = 0; i < FramePanel.childCount; i++) { if (FramePanel.GetChild(i).GetComponent().isOn) { string str = FramePanel.GetChild(i).GetComponentInChildren().text; switch (str) { case "中配置": if ("中配置" == str) { sys.frameSelect = Frame.中配置; } break; case "高配置": if ("高配置" == str) { sys.frameSelect = Frame.高配置; } break; case "低配置": if ("低配置" == str) { sys.frameSelect = Frame.低配置; } break; case "完美画质": if ("完美画质" == str) { sys.frameSelect = Frame.完美画质; } break; default: break; } } } //设置画质与分辨率 StartCoroutine(ClosePanel(sys)); //转为Json文件保存 //设置声音 SystemSettig.IsMute = MuteToggle.isOn; SystemSettig.BgmValue = BGMSlider.value; SystemSettig.SEValue = SESlider.value; SystemSettig.SoundSetFunction(); } /// /// 恢复默认设置 /// private void ResetClick() { sys.resolutionX = SystemSettig.DefultResolutionX; sys.resolutionY = SystemSettig.DefultResolutionY; sys.isFullScreen = SystemSettig.DefulteIsFullScreen; sys.bgmValue = SystemSettig.DefultBgmValue; sys.seValue = SystemSettig.DefultSEValue; sys.isMuto = SystemSettig.DefultIsMute; sys.frameSelect = SystemSettig.DefultFrameSelect; StartCoroutine(ClosePanel(sys)); SystemSettig.DefultSoundSetFunction(); } IEnumerator ClosePanel(System_Setting sys) { if (sys==null) { sys = SystemSettig.instance.DefuletSetting(); } yield return new WaitForSeconds(0.5f); Showtext.gameObject.SetActive(true); SystemSettig.instance.SaveToJson(sys); Showtext.text = SystemSettig.Hinttext; yield return new WaitForSeconds(1f); Showtext.gameObject.SetActive(false); SystemSettig.ShowAndFrameSetfunction(sys); } void setValue() { ShowPanel.Find("AllScreenToggle").GetComponent().isOn = SystemSettig.IsFullScreen; Dropdown dp = ShowPanel.Find("Dropdown").GetComponent(); List all = dp.options; for (int i = 0; i < all.Count; i++) { if (all[i].text == ((SystemSettig.ResolutionX).ToString() + "*" + (SystemSettig.ResolutionY).ToString())) { dp.captionText.text = all[i].text; } } BGMSlider.value = SystemSettig.BgmValue; SESlider.value = SystemSettig.SEValue; MuteToggle.isOn = SystemSettig.IsMute; int select = (int)Enum.Parse(typeof(Frame), SystemSettig.FrameSelect.ToString()); for (int i = 0; i < FramePanel.childCount; i++) { if (i == select) { FramePanel.GetChild(i).GetComponent().isOn = true; } else { FramePanel.GetChild(i).GetComponent().isOn = false; } } } }