using DG.Tweening;
using UnityEngine;
namespace UGUITweener
{
[ExecuteInEditMode,RequireComponent(typeof(CanvasGroup))]
public class TweenFade : TweenerSetting
{
private CanvasGroup canvasGroup;
[Range(0.0f, 1.0f)]
public float from = 1.0f;
[Range(0.0f, 1.0f)]
public float to = 1.0f;
public override void TweenPlay(bool value)
{
if (canvasGroup)
{
float startValue = value ? from : to;
float endvalue = value ? to : from;
canvasGroup.alpha = startValue;
canvasGroup.blocksRaycasts = value;
tween = canvasGroup.DOFade(endvalue, duration).OnComplete(unityEvent.Invoke);
SetTweenData();
}
}
public override void SetStartToCurrentValue()
{
base.SetStartToCurrentValue();
if (!canvasGroup)
{
canvasGroup = GetComponent<CanvasGroup>();
canvasGroup.blocksRaycasts = false;
from=canvasGroup.alpha;
}
}
#if UNITY_EDITOR
[ContextMenu("设置 From")]
private void SetFrom()
{
if (canvasGroup)
{
from = canvasGroup.alpha;
}
}
[ContextMenu("设置 CanvasGroup")]
private void SetCanvasGroup()
{
if (canvasGroup)
{
canvasGroup.alpha = from;
}
}
#endif
}
}