using System.Collections; using System.Collections.Generic; using System; using UnityEngine; using UnityEngine.UI; using UnityEngine.Events; using UnityEngine.SceneManagement; /* 设置界面 */ public class SetUpView : MonoBehaviour { [SerializeField] Image[] crossHairOptionChecks; InputField inputSize; InputField inputDistance; void Start() { this.transform.Find("Items/BGM/Check").gameObject.SetActive(UserSettings.ins.openBGM); this.transform.Find("Items/Effect/Check").gameObject.SetActive(UserSettings.ins.openEffect); this.transform.Find("Items/BowCameraFixed/Check").gameObject.SetActive(UserSettings.ins.bowCameraFixed); this.transform.Find("Items/TrainMode/Check").gameObject.SetActive(UserSettings.ins.trainMode); RenderSelectCrossHairOption(); RenderShootLevel(); RenderActualArrowWeight(); InitForRotateConvert(); } void InitForRotateConvert() { inputSize = transform.Find("RotateConvert/InputSize").GetComponent(); inputDistance = transform.Find("RotateConvert/InputDistance").GetComponent(); UnityAction onEndEdit_inputSize = (string str) => { inputSize.SetTextWithoutNotify(""); float v = (float) System.Math.Round(double.Parse(str), 2); if (v < 1 || v > 120) { PopupMgr.ins.ShowTip(TextAutoLanguage2.GetTextByCNKey("输入值不在常规范围内")); return; } ShowScreenSize(v); //save UserSettings.ins.bowRotateConvert.screenSize = v; UserSettings.ins.Save(); PopupMgr.ins.ShowTip(TextAutoLanguage2.GetTextByCNKey("转化比率 = ") + UserSettings.ins.bowRotateConvert.GetRate()); }; UnityAction onEndEdit_inputDistance = (string str) => { inputDistance.SetTextWithoutNotify(""); float v = (float) System.Math.Round(double.Parse(str), 2); if (v < 0.1 || v > 100) { PopupMgr.ins.ShowTip(TextAutoLanguage2.GetTextByCNKey("输入值不在常规范围内")); return; } ShowScreenDistance(v); //save UserSettings.ins.bowRotateConvert.screenDistance = v; UserSettings.ins.Save(); PopupMgr.ins.ShowTip(TextAutoLanguage2.GetTextByCNKey("转化比率 = ") + UserSettings.ins.bowRotateConvert.GetRate()); }; inputSize.onEndEdit.AddListener(onEndEdit_inputSize); inputDistance.onEndEdit.AddListener(onEndEdit_inputDistance); ShowScreenSize(UserSettings.ins.bowRotateConvert.screenSize); ShowScreenDistance(UserSettings.ins.bowRotateConvert.screenDistance); if (CommonConfig.isReleaseVersion) { inputSize.transform.parent.gameObject.SetActive(false); transform.Find("Items/BowCameraFixed").gameObject.SetActive(false); } } void ShowScreenSize(float v) { string vStr = v.ToString("#0.00"); TextAutoLanguage2 textAutoLanguage2 = inputSize.transform.Find("Placeholder").GetComponent(); textAutoLanguage2.textFormatArgs = new object[]{vStr}; textAutoLanguage2.ApplyToText(); } void ShowScreenDistance(float v) { string vStr = v.ToString("#0.00"); TextAutoLanguage2 textAutoLanguage2 = inputDistance.transform.Find("Placeholder").GetComponent(); textAutoLanguage2.textFormatArgs = new object[]{vStr}; textAutoLanguage2.ApplyToText(); } public void CheckBox(GameObject checkBox) { AudioMgr.ins.PlayBtn(); checkBox.SetActive(!checkBox.activeSelf); if (checkBox.transform.parent.gameObject.name.StartsWith("BGM")) { UserSettings.ins.openBGM = checkBox.activeSelf; UserSettings.ins.Save(); } else if (checkBox.transform.parent.gameObject.name.StartsWith("Effect")) { UserSettings.ins.openEffect = checkBox.activeSelf; UserSettings.ins.Save(); } else if (checkBox.transform.parent.gameObject.name.StartsWith("BowCameraFixed")) { UserSettings.ins.bowCameraFixed = checkBox.activeSelf; UserSettings.ins.Save(); } else if (checkBox.transform.parent.gameObject.name.StartsWith("TrainMode")) { UserSettings.ins.trainMode = checkBox.activeSelf; UserSettings.ins.Save(); } } public void SelectCrossHairOption(bool on) { AudioMgr.ins.PlayBtn(); UserSettings.ins.openCrossHair = on; UserSettings.ins.Save(); RenderSelectCrossHairOption(); } void RenderSelectCrossHairOption() { crossHairOptionChecks[0].enabled = UserSettings.ins.openCrossHair; crossHairOptionChecks[1].enabled = !UserSettings.ins.openCrossHair; } public void ChangeLanguage() { AudioMgr.ins.PlayBtn(); if (TextAutoLanguage.GetLanguage() == LanguageEnum.English) { TextAutoLanguage.ChangeLanguage(LanguageEnum.Chinese); TextAutoLanguage2.ChangeLanguage(LanguageEnum.Chinese); ImageAutoLanguage.ChangeLanguage(LanguageEnum.Chinese); } else if (TextAutoLanguage.GetLanguage() == LanguageEnum.Chinese) { TextAutoLanguage.ChangeLanguage(LanguageEnum.English); TextAutoLanguage2.ChangeLanguage(LanguageEnum.English); ImageAutoLanguage.ChangeLanguage(LanguageEnum.English); } } public void ChangeShootLevel() { AudioMgr.ins.PlayBtn(); int currentShootLevel = UserSettings.ins.shootLevel; if (currentShootLevel < 2) { currentShootLevel++; } else { currentShootLevel = 0; } UserSettings.ins.shootLevel = currentShootLevel; UserSettings.ins.Save(); RenderShootLevel(); } void RenderShootLevel() { int currentShootLevel = UserSettings.ins.shootLevel; int[] textID = {310, 311, 312}; this.transform.Find("Items/ShootLevel/Value").GetComponent().SetText(textID[currentShootLevel]); } public void ChangeActualArrowWeight() { AudioMgr.ins.PlayBtn(); float[] itemValues = {20f, 27f, 30.5f}; float actualArrowWeight = UserSettings.ins.actualArrowWeight; if (actualArrowWeight == itemValues[itemValues.Length - 1]) { actualArrowWeight = itemValues[0]; } else { for (int i = 0; i < itemValues.Length; i++) { if (itemValues[i] == actualArrowWeight) { actualArrowWeight = itemValues[i + 1]; break; } } } UserSettings.ins.actualArrowWeight = actualArrowWeight; UserSettings.ins.Save(); RenderActualArrowWeight(); } void RenderActualArrowWeight() { TextAutoLanguage textAutoLanguage = this.transform.Find("Items/ActualArrowHeight/Value").GetComponent(); textAutoLanguage.textFormatArgs = new string[]{UserSettings.ins.actualArrowWeight.ToString()}; textAutoLanguage.SetText(314); } public void Back() { AudioMgr.ins.PlayBtn(); Destroy(this.gameObject); } }