12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- // --------------------------------------------------------------------------------------------------------------------
- // <copyright file="ImageToggleIsOnTransition.cs" company="Exit Games GmbH">
- // </copyright>
- // <summary>
- // Use this on Toggle graphics to have some color transition as well without corrupting toggle's behaviour.
- // </summary>
- // <author>developer@exitgames.com</author>
- // --------------------------------------------------------------------------------------------------------------------
- using UnityEngine;
- using UnityEngine.EventSystems;
- using UnityEngine.UI;
- namespace Photon.Pun.UtilityScripts
- {
- /// <summary>
- /// Use this on toggles texts to have some color transition on the text depending on the isOn State.
- /// </summary>
- [RequireComponent(typeof(Graphic))]
- public class GraphicToggleIsOnTransition : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler
- {
- public Toggle toggle;
- private Graphic _graphic;
- public Color NormalOnColor = Color.white;
- public Color NormalOffColor = Color.black;
- public Color HoverOnColor = Color.black;
- public Color HoverOffColor = Color.black;
- private bool isHover;
- public void OnPointerEnter(PointerEventData eventData)
- {
- this.isHover = true;
- this._graphic.color = this.toggle.isOn ? this.HoverOnColor : this.HoverOffColor;
- }
- public void OnPointerExit(PointerEventData eventData)
- {
- this.isHover = false;
- this._graphic.color = this.toggle.isOn ? this.NormalOnColor : this.NormalOffColor;
- }
- public void OnEnable()
- {
- this._graphic = this.GetComponent<Graphic>();
- this.OnValueChanged(this.toggle.isOn);
- this.toggle.onValueChanged.AddListener(this.OnValueChanged);
- }
- public void OnDisable()
- {
- this.toggle.onValueChanged.RemoveListener(this.OnValueChanged);
- }
- public void OnValueChanged(bool isOn)
- {
- this._graphic.color = isOn ? (this.isHover ? this.HoverOnColor : this.HoverOnColor) : (this.isHover ? this.NormalOffColor : this.NormalOffColor);
- }
- }
- }
|