| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218 |
- using System.Collections;
- using System.Collections.Generic;
- using System;
- using UnityEngine;
- using UnityEngine.UI;
- using UnityEngine.Events;
- using UnityEngine.SceneManagement;
- /* 设置界面 */
- public class SettingsGameView : JCUnityLib.ViewBase, MenuBackInterface
- {
- [SerializeField] Image[] crossHairOptionChecks;
- InputField inputSize;
- // InputField inputDistance;
- Text inputDistanceText;
- void Start()
- {
- PersistenHandler.ins?.menuBackCtr.views.Add(this);
- 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();
- if (CommonConfig.banLanguageChangeSwitch)
- {
- this.transform.Find("Items/Language").gameObject.SetActive(false);
- StartCoroutine(FixMaxRow(this.transform.Find("Items/TrainMode") as RectTransform));
- }
- }
- IEnumerator FixMaxRow(RectTransform rtf)
- {
- yield return null;
- rtf.GetComponentInParent<GridLayoutGroup>().enabled = false;
- Vector2 v2 = rtf.sizeDelta;
- v2.x = (rtf.parent as RectTransform).rect.width;
- rtf.sizeDelta = v2;
- }
- void OnDestroy()
- {
- PersistenHandler.ins?.menuBackCtr.views.Remove(this);
- }
- public bool OnMenuBack() {
- ViewMgr.Instance.DestroyView<SettingsGameView>();
- return true;
- }
- void InitForRotateConvert() {
- inputSize = transform.Find("RotateConvert/InputSize").GetComponent<InputField>();
- // inputDistance = transform.Find("RotateConvert/InputDistance").GetComponent<InputField>();
- inputDistanceText = transform.Find("RotateConvert/InputDistance").GetComponentInChildren<Text>();
- UnityAction<string> 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();
- ShowScreenDistance(UserSettings.ins.bowRotateConvert.GetAdviseScreenDistance());
- // PopupMgr.ins.ShowTip(TextAutoLanguage2.GetTextByCNKey("转化比率 = ") + UserSettings.ins.bowRotateConvert.GetRate());
- };
- // UnityAction<string> 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);
- // inputDistance.readOnly = true;
- ShowScreenSize(UserSettings.ins.bowRotateConvert.screenSize);
- // ShowScreenSize(UserSettings.ins.bowRotateConvert.screenDistance);
- ShowScreenDistance(UserSettings.ins.bowRotateConvert.GetAdviseScreenDistance());
- 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>();
- 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>();
- // textAutoLanguage2.textFormatArgs = new object[]{vStr};
- // textAutoLanguage2.ApplyToText();
- // inputDistance.text = string.Format(TextAutoLanguage2.GetTextByKey("setup_screen-distance"), v.ToString("#0.00"));
- TextAutoLanguage2 textAutoLanguage2 = inputDistanceText.GetComponent<TextAutoLanguage2>();
- textAutoLanguage2.textFormatArgs = new object[]{v.ToString("#0.00")};
- 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 (TextAutoLanguage2.GetLanguage() == LanguageEnum.English)
- {
- TextAutoLanguage.ChangeLanguage(LanguageEnum.Chinese);
- TextAutoLanguage2.ChangeLanguage(LanguageEnum.Chinese);
- ImageAutoLanguage.ChangeLanguage(LanguageEnum.Chinese);
- }
- else if (TextAutoLanguage2.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<TextAutoLanguage>().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>();
- textAutoLanguage.textFormatArgs = new string[]{UserSettings.ins.actualArrowWeight.ToString()};
- textAutoLanguage.SetText(314);
- }
- public void Back() {
- AudioMgr.ins.PlayBtn();
- ViewMgr.Instance.DestroyView<SettingsGameView>();
- }
- }
|