| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168 |
- using System.Collections;
- using System.Collections.Generic;
- using UnityEngine;
- using UnityEngine.UI;
- public class BoxLevel : MonoBehaviour
- {
- [SerializeField] Transform boxLevelArrowWeightSelects;
- [SerializeField] Transform boxLevelShootLevelSelects;
- [SerializeField] Transform boxLevelCrossHairSelects;
- [SerializeField] Transform boxLevelBowCameraFixed;
- [SerializeField] Transform boxLevelTrainMode;
- readonly static float[] ArrowWeights = { 20f, 27f, 30.5f };
- readonly static int[] ShootLevels = { 0, 1, 2 };
- readonly string[] ShootLevelStrs = { "Easy", "Normal", "Hard" };
- readonly static int[] buttons = { 0, 1 };
- readonly string[] buttonStrs = { "Yes", "No" };
- void OnEnable()
- {
- float arrowWeight = UserSettings.ins.actualArrowWeight;
- if (System.Array.IndexOf(ArrowWeights, arrowWeight) < 0) arrowWeight = ArrowWeights[0];
- RenderArrowWeight(arrowWeight);
- int shootLevel = UserSettings.ins.shootLevel;
- if (System.Array.IndexOf(ShootLevels, shootLevel) < 0) shootLevel = ShootLevels[0];
- RenderShootLevel(shootLevel);
- //准心
- bool openCrossHair = UserSettings.ins.openCrossHair;
- RenderButtos(openCrossHair ? 0 : 1, boxLevelCrossHairSelects);
- //固定背景
- bool bowCameraFixed = UserSettings.ins.bowCameraFixed;
- RenderButtos(bowCameraFixed ? 0 : 1, boxLevelBowCameraFixed);
- //训练模式
- bool trainMode = UserSettings.ins.trainMode;
- RenderButtos(trainMode ? 0 : 1, boxLevelTrainMode);
- }
- public void OnClick_SelectArrowWeight(Transform target)
- {
- float oldValue = UserSettings.ins.actualArrowWeight;
- int index = target.GetSiblingIndex();
- float newValue = ArrowWeights[index];
- RenderArrowWeight(newValue);
- if (oldValue != newValue)
- {
- AudioMgr.ins.PlayBtn();
- UserSettings.ins.actualArrowWeight = newValue;
- UserSettings.ins.Save();
- }
- }
- public void OnClick_SelectShootLevel(Transform target)
- {
- int oldValue = UserSettings.ins.shootLevel;
- int index = target.GetSiblingIndex();
- int newValue = ShootLevels[index];
- RenderShootLevel(newValue);
- if (oldValue != newValue)
- {
- AudioMgr.ins.PlayBtn();
- UserSettings.ins.shootLevel = newValue;
- UserSettings.ins.Save();
- }
- }
- public void OnClick_CrossHairs(Transform target)
- {
- int oldValue = UserSettings.ins.openCrossHair?0:1;
- int index = target.GetSiblingIndex();
- int newValue = buttons[index];
- RenderButtos(newValue, boxLevelCrossHairSelects);
- if (oldValue != newValue)
- {
- AudioMgr.ins.PlayBtn();
- UserSettings.ins.openCrossHair = newValue == 0?true:false;
- UserSettings.ins.Save();
- }
- }
- public void OnClick_BowCameraFixed(Transform target)
- {
- int oldValue = UserSettings.ins.bowCameraFixed ? 0 : 1;
- int index = target.GetSiblingIndex();
- int newValue = buttons[index];
- RenderButtos(newValue, boxLevelBowCameraFixed);
- if (oldValue != newValue)
- {
- AudioMgr.ins.PlayBtn();
- UserSettings.ins.bowCameraFixed = newValue == 0 ? true : false;
- UserSettings.ins.Save();
- }
- }
- public void OnClick_TrainMode(Transform target)
- {
- int oldValue = UserSettings.ins.trainMode ? 0 : 1;
- int index = target.GetSiblingIndex();
- int newValue = buttons[index];
- RenderButtos(newValue, boxLevelTrainMode);
- if (oldValue != newValue)
- {
- AudioMgr.ins.PlayBtn();
- UserSettings.ins.trainMode = newValue == 0 ? true : false;
- UserSettings.ins.Save();
- }
- }
- void RenderArrowWeight(float value)
- {
- for (int i = 0; i < ArrowWeights.Length; i++)
- {
- var itemValue = ArrowWeights[i];
- var item = boxLevelArrowWeightSelects.GetChild(i);
- var text = item.GetComponentInChildren<Text>();
- if (itemValue == value)
- {
- item.GetComponent<Image>().color = Color.black;
- text.color = Color.white;
- }
- else
- {
- item.GetComponent<Image>().color = new Color(1, 1, 1, 0);
- text.color = Color.black;
- }
- text.text = itemValue + "Grams";
- }
- }
- void RenderShootLevel(int value)
- {
- for (int i = 0; i < ShootLevels.Length; i++)
- {
- var itemValue = ShootLevels[i];
- var item = boxLevelShootLevelSelects.GetChild(i);
- var text = item.GetComponentInChildren<Text>();
- if (itemValue == value)
- {
- item.GetComponent<Image>().color = Color.black;
- text.color = Color.white;
- }
- else
- {
- item.GetComponent<Image>().color = new Color(1, 1, 1, 0);
- text.color = Color.black;
- }
- text.text = ShootLevelStrs[i];
- }
- }
- void RenderButtos(int value,Transform target)
- {
- for (int i = 0; i < buttons.Length; i++)
- {
- var itemValue = buttons[i];
- var item = target.GetChild(i);
- var text = item.GetComponentInChildren<Text>();
- if (itemValue == value)
- {
- item.GetComponent<Image>().color = Color.black;
- text.color = Color.white;
- }
- else
- {
- item.GetComponent<Image>().color = new Color(1, 1, 1, 0);
- text.color = Color.black;
- }
- text.text = buttonStrs[i];
- }
- }
- }
|