BoxLevel.cs 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. using System.Collections;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. using UnityEngine.UI;
  5. public class BoxLevel : MonoBehaviour
  6. {
  7. [SerializeField] Transform boxLevelArrowWeightSelects;
  8. [SerializeField] Transform boxLevelShootLevelSelects;
  9. readonly static float[] ArrowWeights = { 20f, 27f, 30.5f };
  10. readonly static int[] ShootLevels = { 0, 1, 2 };
  11. readonly string[] ShootLevelStrs = { "Easy", "Normal", "Hard" };
  12. void OnEnable()
  13. {
  14. float arrowWeight = UserSettings.ins.actualArrowWeight;
  15. if (System.Array.IndexOf(ArrowWeights, arrowWeight) < 0) arrowWeight = ArrowWeights[0];
  16. RenderArrowWeight(arrowWeight);
  17. int shootLevel = UserSettings.ins.shootLevel;
  18. if (System.Array.IndexOf(ShootLevels, shootLevel) < 0) shootLevel = ShootLevels[0];
  19. RenderShootLevel(shootLevel);
  20. }
  21. public void OnClick_SelectArrowWeight(Transform target)
  22. {
  23. float oldValue = UserSettings.ins.actualArrowWeight;
  24. int index = target.GetSiblingIndex();
  25. float newValue = ArrowWeights[index];
  26. RenderArrowWeight(newValue);
  27. if (oldValue != newValue)
  28. {
  29. AudioMgr.ins.PlayBtn();
  30. UserSettings.ins.actualArrowWeight = newValue;
  31. UserSettings.ins.Save();
  32. }
  33. }
  34. public void OnClick_SelectShootLevel(Transform target)
  35. {
  36. int oldValue = UserSettings.ins.shootLevel;
  37. int index = target.GetSiblingIndex();
  38. int newValue = ShootLevels[index];
  39. RenderShootLevel(newValue);
  40. if (oldValue != newValue)
  41. {
  42. AudioMgr.ins.PlayBtn();
  43. UserSettings.ins.shootLevel = newValue;
  44. UserSettings.ins.Save();
  45. }
  46. }
  47. void RenderArrowWeight(float value)
  48. {
  49. for (int i = 0; i < ArrowWeights.Length; i++)
  50. {
  51. var itemValue = ArrowWeights[i];
  52. var item = boxLevelArrowWeightSelects.GetChild(i);
  53. var text = item.GetComponentInChildren<Text>();
  54. if (itemValue == value)
  55. {
  56. item.GetComponent<Image>().color = Color.black;
  57. text.color = Color.white;
  58. }
  59. else
  60. {
  61. item.GetComponent<Image>().color = new Color(1, 1, 1, 0);
  62. text.color = Color.black;
  63. }
  64. text.text = itemValue + "Grams";
  65. }
  66. }
  67. void RenderShootLevel(int value)
  68. {
  69. for (int i = 0; i < ShootLevels.Length; i++)
  70. {
  71. var itemValue = ShootLevels[i];
  72. var item = boxLevelShootLevelSelects.GetChild(i);
  73. var text = item.GetComponentInChildren<Text>();
  74. if (itemValue == value)
  75. {
  76. item.GetComponent<Image>().color = Color.black;
  77. text.color = Color.white;
  78. }
  79. else
  80. {
  81. item.GetComponent<Image>().color = new Color(1, 1, 1, 0);
  82. text.color = Color.black;
  83. }
  84. text.text = ShootLevelStrs[i];
  85. }
  86. }
  87. }