BoxScreenDistance.cs 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.UI;
  5. using UnityEngine.Events;
  6. public class BoxScreenDistance : MonoBehaviour
  7. {
  8. [SerializeField] Slider slider;
  9. [SerializeField] Text screenSizeText;
  10. [SerializeField] Text distanceText;
  11. const float ScreenSizeMax = 128;
  12. [SerializeField] InputField inputSize;
  13. void Start()
  14. {
  15. slider.maxValue = ScreenSizeMax;
  16. //RefreshScreenSizeSlider();
  17. InitForRotateConvert();
  18. //slider.onValueChanged.AddListener(v => {
  19. // UserSettings.ins.bowRotateConvert.screenSize = v;
  20. // UserSettings.ins.Save();
  21. // RefreshScreenSizeSlider();
  22. //});
  23. }
  24. void RefreshScreenSizeSlider()
  25. {
  26. slider.SetValueWithoutNotify(UserSettings.ins.bowRotateConvert.screenSize);
  27. SetScreenSize(UserSettings.ins.bowRotateConvert.screenSize);
  28. SetScreenDistance(UserSettings.ins.bowRotateConvert.GetAdviseScreenDistance());
  29. }
  30. void SetScreenSize(float v)
  31. {
  32. string vStr = v.ToString("#0");
  33. screenSizeText.text = vStr + "Inch";
  34. }
  35. void SetScreenDistance(float v)
  36. {
  37. string vStr = v.ToString("#0.00");
  38. distanceText.text = vStr + "M";
  39. }
  40. void InitForRotateConvert()
  41. {
  42. UnityAction<string> onEndEdit_inputSize = (string str) => {
  43. inputSize.SetTextWithoutNotify("");
  44. float v = (float)System.Math.Round(double.Parse(str), 2);
  45. if (v < 1 || v > 120)
  46. {
  47. PopupMgr.ins.ShowTip(TextAutoLanguage2.GetTextByCNKey("输入值不在常规范围内"));
  48. return;
  49. }
  50. SetScreenSize(v);
  51. //save
  52. UserSettings.ins.bowRotateConvert.screenSize = v;
  53. UserSettings.ins.Save();
  54. SetScreenDistance(UserSettings.ins.bowRotateConvert.GetAdviseScreenDistance());
  55. };
  56. inputSize.onEndEdit.AddListener(onEndEdit_inputSize);
  57. SetScreenSize(UserSettings.ins.bowRotateConvert.screenSize);
  58. SetScreenDistance(UserSettings.ins.bowRotateConvert.GetAdviseScreenDistance());
  59. //if (CommonConfig.isReleaseVersion)
  60. //{
  61. // //inputSize.transform.parent.gameObject.SetActive(false);
  62. // //transform.Find("Items/BowCameraFixed").gameObject.SetActive(false);
  63. //}
  64. }
  65. }