Advertisement
Guest User

Untitled

a guest
Feb 23rd, 2020
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.83 KB | None | 0 0
  1. using UnityEngine;
  2. using UnityEngine.UI;
  3. using System.Collections;
  4.  
  5. public class MeterObject : MonoBehaviour {
  6.  
  7. public static MeterObject Instance;
  8.  
  9. const int MAX = 1;
  10.  
  11. [SerializeField] Animator anim = null;
  12. [SerializeField] RectTransform rangeTransform = null;
  13. [SerializeField] RectTransform rangeTransform2 = null;
  14. [SerializeField] RectTransform slider = null;
  15. [SerializeField] RectTransform meterObject;
  16.  
  17. float range;
  18. float range2;
  19. float curSlider;
  20. float meterWidth;
  21. float tempSlider;
  22. Vector2 rangeData;
  23. Vector2 rangeData2;
  24. Vector2 targetData;
  25. Vector2 targetData2;
  26. bool isCatching;
  27. bool inverse;
  28.  
  29. void Awake() {
  30. Instance = this;
  31.  
  32. //red
  33. range = DifficultyMeter.Instance.GetData().GetRange();
  34. rangeData.x = 0 + (range * 0.5f);
  35. rangeData.y = MAX - (range * 0.5f);
  36. meterWidth = meterObject.sizeDelta.x;
  37. rangeTransform.sizeDelta = new Vector2(meterWidth * range, rangeTransform.sizeDelta.y);
  38.  
  39. //green
  40. range2 = DifficultyMeter.Instance.GetData().GetRange2();
  41. rangeData2.x = 0 + (range2 * 0.5f);
  42. rangeData2.y = MAX - (range2 * 0.5f);
  43. rangeTransform2.sizeDelta = new Vector2(meterWidth * range2, rangeTransform2.sizeDelta.y);
  44.  
  45. }
  46.  
  47. void Update() {
  48. if (isCatching || !GameManager.Instance.IsPlaying())
  49. return;
  50.  
  51. curSlider += (inverse ? Time.deltaTime : -Time.deltaTime) * DifficultyMeter.Instance.GetData().GetSliderSpeed();
  52.  
  53. if(curSlider < 0)
  54. curSlider = 0;
  55.  
  56. if (curSlider > 1)
  57. curSlider = 1;
  58.  
  59. if (curSlider == 0 || curSlider == 1)
  60. inverse = !inverse;
  61.  
  62. slider.localPosition = new Vector3((curSlider - 0.5f) * meterWidth, 0);
  63.  
  64. }
  65.  
  66. public void ShowRange() {
  67. //red
  68. float target = Random.Range(rangeData.x, rangeData.y);
  69. targetData.x = target - (range / 2);
  70. targetData.y = target + (range / 2);
  71. rangeTransform.localPosition = new Vector3((target - 0.5f) * meterWidth, 0, 0);
  72.  
  73. //green
  74. float target2 =
  75. targetData2.x = target2 - (range2 / 2);
  76. targetData2.y = target2 + (range2 / 2);
  77. rangeTransform2.localPosition = new Vector3((target2 - 0.5f) * meterWidth, 0, 0);
  78.  
  79. }
  80.  
  81. public void CheckRange() {
  82. if (isCatching || !GameManager.Instance.IsPlaying())
  83. return;
  84.  
  85. tempSlider = curSlider;
  86. StartCoroutine(StartCatching());
  87. }
  88.  
  89. IEnumerator StartCatching() {
  90. anim.Play("Pull");
  91. isCatching = true;
  92. yield return new WaitForSeconds(1);
  93. isCatching = false;
  94. if (tempSlider > targetData.x && tempSlider < targetData.y)
  95. {
  96. GameManager.Instance.Correct();
  97. }
  98. else if (tempSlider > targetData2.x && tempSlider < targetData2.y)
  99. {
  100. GameManager.Instance.Correct2();
  101. }
  102. else
  103. ScoreManager.Instance.LossHealth();
  104. }
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement