Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using UnityEngine;
- using UnityEngine.UI;
- using System.Collections;
- public class MeterObject : MonoBehaviour {
- public static MeterObject Instance;
- const int MAX = 1;
- [SerializeField] Animator anim = null;
- [SerializeField] RectTransform rangeTransform = null;
- [SerializeField] RectTransform rangeTransform2 = null;
- [SerializeField] RectTransform slider = null;
- [SerializeField] RectTransform meterObject;
- float range;
- float range2;
- float curSlider;
- float meterWidth;
- float tempSlider;
- Vector2 rangeData;
- Vector2 rangeData2;
- Vector2 targetData;
- Vector2 targetData2;
- bool isCatching;
- bool inverse;
- void Awake() {
- Instance = this;
- //red
- range = DifficultyMeter.Instance.GetData().GetRange();
- rangeData.x = 0 + (range * 0.5f);
- rangeData.y = MAX - (range * 0.5f);
- meterWidth = meterObject.sizeDelta.x;
- rangeTransform.sizeDelta = new Vector2(meterWidth * range, rangeTransform.sizeDelta.y);
- //green
- range2 = DifficultyMeter.Instance.GetData().GetRange2();
- rangeData2.x = 0 + (range2 * 0.5f);
- rangeData2.y = MAX - (range2 * 0.5f);
- rangeTransform2.sizeDelta = new Vector2(meterWidth * range2, rangeTransform2.sizeDelta.y);
- }
- void Update() {
- if (isCatching || !GameManager.Instance.IsPlaying())
- return;
- curSlider += (inverse ? Time.deltaTime : -Time.deltaTime) * DifficultyMeter.Instance.GetData().GetSliderSpeed();
- if(curSlider < 0)
- curSlider = 0;
- if (curSlider > 1)
- curSlider = 1;
- if (curSlider == 0 || curSlider == 1)
- inverse = !inverse;
- slider.localPosition = new Vector3((curSlider - 0.5f) * meterWidth, 0);
- }
- public void ShowRange() {
- //red
- float target = Random.Range(rangeData.x, rangeData.y);
- targetData.x = target - (range / 2);
- targetData.y = target + (range / 2);
- rangeTransform.localPosition = new Vector3((target - 0.5f) * meterWidth, 0, 0);
- //green
- float target2 =
- targetData2.x = target2 - (range2 / 2);
- targetData2.y = target2 + (range2 / 2);
- rangeTransform2.localPosition = new Vector3((target2 - 0.5f) * meterWidth, 0, 0);
- }
- public void CheckRange() {
- if (isCatching || !GameManager.Instance.IsPlaying())
- return;
- tempSlider = curSlider;
- StartCoroutine(StartCatching());
- }
- IEnumerator StartCatching() {
- anim.Play("Pull");
- isCatching = true;
- yield return new WaitForSeconds(1);
- isCatching = false;
- if (tempSlider > targetData.x && tempSlider < targetData.y)
- {
- GameManager.Instance.Correct();
- }
- else if (tempSlider > targetData2.x && tempSlider < targetData2.y)
- {
- GameManager.Instance.Correct2();
- }
- else
- ScoreManager.Instance.LossHealth();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement