12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- using UnityEngine;
- using System.Collections;
- using UnityEngine.EventSystems;
- using UnityEngine.UI;
- namespace CurvedUI
- {
- public class CUI_ChangeValueOnHold : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
- {
- bool pressed = false;
- bool selected = false;
- #pragma warning disable 0649
- [SerializeField]
- Image bg;
- [SerializeField]
- Color SelectedColor;
- [SerializeField]
- Color NormalColor;
- [SerializeField]
- CanvasGroup IntroCG;
- [SerializeField]
- CanvasGroup MenuCG;
- #pragma warning restore 0649
- // Update is called once per frame
- void Update()
- {
- pressed = Input.GetKey(KeyCode.Space) || Input.GetButton("Fire1");
- ChangeVal();
- }
- void ChangeVal()
- {
- if (this.GetComponent<Slider>().normalizedValue == 1)
- {
- //fade intro screen if we reached max slider value
- IntroCG.alpha -= Time.deltaTime;
- MenuCG.alpha += Time.deltaTime;
- }
- else {
- //change slider value - increase if its selected and button is pressed
- this.GetComponent<Slider>().normalizedValue += (pressed && selected) ? Time.deltaTime : -Time.deltaTime;
- }
- //change if intro screen can block interactions based on its opacity
- IntroCG.blocksRaycasts = IntroCG.alpha > 0;
- }
- public void OnPointerEnter(PointerEventData data)
- {
- bg.color = SelectedColor;
- bg.GetComponent<CurvedUIVertexEffect>().TesselationRequired = true;
- selected = true;
- }
- public void OnPointerExit(PointerEventData data)
- {
- bg.color = NormalColor;
- bg.GetComponent<CurvedUIVertexEffect>().TesselationRequired = true;
- selected = false;
- }
- }
- }
|