BoxLevel.cs 5.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168
  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. [SerializeField] Transform boxLevelCrossHairSelects;
  10. [SerializeField] Transform boxLevelBowCameraFixed;
  11. [SerializeField] Transform boxLevelTrainMode;
  12. readonly static float[] ArrowWeights = { 20f, 27f, 30.5f };
  13. readonly static int[] ShootLevels = { 0, 1, 2 };
  14. readonly string[] ShootLevelStrs = { "Easy", "Normal", "Hard" };
  15. readonly static int[] buttons = { 0, 1 };
  16. readonly string[] buttonStrs = { "Yes", "No" };
  17. void OnEnable()
  18. {
  19. float arrowWeight = UserSettings.ins.actualArrowWeight;
  20. if (System.Array.IndexOf(ArrowWeights, arrowWeight) < 0) arrowWeight = ArrowWeights[0];
  21. RenderArrowWeight(arrowWeight);
  22. int shootLevel = UserSettings.ins.shootLevel;
  23. if (System.Array.IndexOf(ShootLevels, shootLevel) < 0) shootLevel = ShootLevels[0];
  24. RenderShootLevel(shootLevel);
  25. //准心
  26. bool openCrossHair = UserSettings.ins.openCrossHair;
  27. RenderButtos(openCrossHair ? 0 : 1, boxLevelCrossHairSelects);
  28. //固定背景
  29. bool bowCameraFixed = UserSettings.ins.bowCameraFixed;
  30. RenderButtos(bowCameraFixed ? 0 : 1, boxLevelBowCameraFixed);
  31. //训练模式
  32. bool trainMode = UserSettings.ins.trainMode;
  33. RenderButtos(trainMode ? 0 : 1, boxLevelTrainMode);
  34. }
  35. public void OnClick_SelectArrowWeight(Transform target)
  36. {
  37. float oldValue = UserSettings.ins.actualArrowWeight;
  38. int index = target.GetSiblingIndex();
  39. float newValue = ArrowWeights[index];
  40. RenderArrowWeight(newValue);
  41. if (oldValue != newValue)
  42. {
  43. AudioMgr.ins.PlayBtn();
  44. UserSettings.ins.actualArrowWeight = newValue;
  45. UserSettings.ins.Save();
  46. }
  47. }
  48. public void OnClick_SelectShootLevel(Transform target)
  49. {
  50. int oldValue = UserSettings.ins.shootLevel;
  51. int index = target.GetSiblingIndex();
  52. int newValue = ShootLevels[index];
  53. RenderShootLevel(newValue);
  54. if (oldValue != newValue)
  55. {
  56. AudioMgr.ins.PlayBtn();
  57. UserSettings.ins.shootLevel = newValue;
  58. UserSettings.ins.Save();
  59. }
  60. }
  61. public void OnClick_CrossHairs(Transform target)
  62. {
  63. int oldValue = UserSettings.ins.openCrossHair?0:1;
  64. int index = target.GetSiblingIndex();
  65. int newValue = buttons[index];
  66. RenderButtos(newValue, boxLevelCrossHairSelects);
  67. if (oldValue != newValue)
  68. {
  69. AudioMgr.ins.PlayBtn();
  70. UserSettings.ins.openCrossHair = newValue == 0?true:false;
  71. UserSettings.ins.Save();
  72. }
  73. }
  74. public void OnClick_BowCameraFixed(Transform target)
  75. {
  76. int oldValue = UserSettings.ins.bowCameraFixed ? 0 : 1;
  77. int index = target.GetSiblingIndex();
  78. int newValue = buttons[index];
  79. RenderButtos(newValue, boxLevelBowCameraFixed);
  80. if (oldValue != newValue)
  81. {
  82. AudioMgr.ins.PlayBtn();
  83. UserSettings.ins.bowCameraFixed = newValue == 0 ? true : false;
  84. UserSettings.ins.Save();
  85. }
  86. }
  87. public void OnClick_TrainMode(Transform target)
  88. {
  89. int oldValue = UserSettings.ins.trainMode ? 0 : 1;
  90. int index = target.GetSiblingIndex();
  91. int newValue = buttons[index];
  92. RenderButtos(newValue, boxLevelTrainMode);
  93. if (oldValue != newValue)
  94. {
  95. AudioMgr.ins.PlayBtn();
  96. UserSettings.ins.trainMode = newValue == 0 ? true : false;
  97. UserSettings.ins.Save();
  98. }
  99. }
  100. void RenderArrowWeight(float value)
  101. {
  102. for (int i = 0; i < ArrowWeights.Length; i++)
  103. {
  104. var itemValue = ArrowWeights[i];
  105. var item = boxLevelArrowWeightSelects.GetChild(i);
  106. var text = item.GetComponentInChildren<Text>();
  107. if (itemValue == value)
  108. {
  109. item.GetComponent<Image>().color = Color.black;
  110. text.color = Color.white;
  111. }
  112. else
  113. {
  114. item.GetComponent<Image>().color = new Color(1, 1, 1, 0);
  115. text.color = Color.black;
  116. }
  117. text.text = itemValue + "Grams";
  118. }
  119. }
  120. void RenderShootLevel(int value)
  121. {
  122. for (int i = 0; i < ShootLevels.Length; i++)
  123. {
  124. var itemValue = ShootLevels[i];
  125. var item = boxLevelShootLevelSelects.GetChild(i);
  126. var text = item.GetComponentInChildren<Text>();
  127. if (itemValue == value)
  128. {
  129. item.GetComponent<Image>().color = Color.black;
  130. text.color = Color.white;
  131. }
  132. else
  133. {
  134. item.GetComponent<Image>().color = new Color(1, 1, 1, 0);
  135. text.color = Color.black;
  136. }
  137. text.text = ShootLevelStrs[i];
  138. }
  139. }
  140. void RenderButtos(int value,Transform target)
  141. {
  142. for (int i = 0; i < buttons.Length; i++)
  143. {
  144. var itemValue = buttons[i];
  145. var item = target.GetChild(i);
  146. var text = item.GetComponentInChildren<Text>();
  147. if (itemValue == value)
  148. {
  149. item.GetComponent<Image>().color = Color.black;
  150. text.color = Color.white;
  151. }
  152. else
  153. {
  154. item.GetComponent<Image>().color = new Color(1, 1, 1, 0);
  155. text.color = Color.black;
  156. }
  157. text.text = buttonStrs[i];
  158. }
  159. }
  160. }