// -------------------------------------------------------------------------------------------------------------------- // // // // Use this on Button texts to have some color transition on the text as well without corrupting button's behaviour. // // developer@exitgames.com // -------------------------------------------------------------------------------------------------------------------- using UnityEngine; using UnityEngine.EventSystems; using UnityEngine.UI; namespace Photon.Chat.UtilityScripts { /// /// Use this on toggles texts to have some color transition on the text depending on the isOn State. /// [RequireComponent(typeof(Text))] public class TextToggleIsOnTransition : MonoBehaviour, IPointerEnterHandler, IPointerExitHandler { /// /// The toggle Component. /// public Toggle toggle; Text _text; /// /// The color of the normal on transition state. /// public Color NormalOnColor= Color.white; /// /// The color of the normal off transition state. /// public Color NormalOffColor = Color.black; /// /// The color of the hover on transition state. /// public Color HoverOnColor= Color.black; /// /// The color of the hover off transition state. /// public Color HoverOffColor = Color.black; bool isHover; public void OnEnable() { _text = GetComponent(); OnValueChanged (toggle.isOn); toggle.onValueChanged.AddListener(OnValueChanged); } public void OnDisable() { toggle.onValueChanged.RemoveListener(OnValueChanged); } public void OnValueChanged(bool isOn) { _text.color = isOn? (isHover?HoverOnColor:HoverOnColor) : (isHover?NormalOffColor:NormalOffColor) ; } public void OnPointerEnter(PointerEventData eventData) { isHover = true; _text.color = toggle.isOn?HoverOnColor:HoverOffColor; } public void OnPointerExit(PointerEventData eventData) { isHover = false; _text.color = toggle.isOn?NormalOnColor:NormalOffColor; } } }