* 作者:闪电Y黑客
* 日期: 2019.7.10
* 功能:触摸事件 UI变色器
using System;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
/*
* 作者:闪电Y黑客
*
* 日期: 2019.7.10
*
* 功能:触摸事件 UI变色器
*
*/
namespace SDHK_Tool.Component
{
/// <summary>
/// 触摸UI变色器
/// </summary>
public class SC_TouchColor : MonoBehaviour, IPointerDownHandler, IPointerEnterHandler, IPointerUpHandler, IPointerExitHandler
{
private Image image;
private RawImage rawimage;
[Tooltip("点击颜色")]
[SerializeField]
public Color TouchDown = new Color(0.7f, 0.7f, 0.7f, 1);
[Tooltip("停留颜色")]
[SerializeField]
public Color TouchEnter = new Color(0.9f, 0.9f, 0.9f, 1);
// [SerializeField]
private Color TouchExit = Color.white;
private Color imageColor;
private int TouchDownCount = 0;
private int TouchEnterCount = 0;
void Start()
{
if (GetComponent<Image>() != null) { image = GetComponent<Image>(); TouchExit = image.color; }
if (GetComponent<RawImage>() != null) { rawimage = GetComponent<RawImage>(); TouchExit = rawimage.color; }
}
public void OnPointerDown(PointerEventData eventData)
{
TouchDownCount++;
if (TouchDownCount == 1)
{
imageColor = TouchDown;
Set_Color();
}
}
public void OnPointerEnter(PointerEventData eventData)
{
TouchEnterCount++;
if (TouchDownCount == 0 && TouchEnterCount == 1)
{
imageColor = TouchEnter;
Set_Color();
}
}
public void OnPointerUp(PointerEventData eventData)
{
TouchDownCount--;
if (TouchDownCount == 0 && TouchEnterCount > 0)
{
imageColor = TouchEnter;
Set_Color();
}
if (TouchDownCount == 0 && TouchEnterCount == 0)
{
imageColor = TouchExit;
Set_Color();
}
}
public void OnPointerExit(PointerEventData eventData)
{
TouchEnterCount--;
if (TouchDownCount == 0 && TouchEnterCount == 0)
{
imageColor = TouchExit;
Set_Color();
}
}
public void Set_Color()
{
if (image != null) image.color = imageColor;
if (rawimage != null) rawimage.color = imageColor;
}
}
}