Files
UltimateFishing2020/Assets/Scripts/Assembly-CSharp/HUDCanvasGroupBase.cs
2026-03-04 10:03:45 +08:00

48 lines
1.0 KiB
C#

using DG.Tweening;
using UnityEngine;
public abstract class HUDCanvasGroupBase : MonoBehaviour
{
protected CanvasGroup canvasGroup;
protected RectTransform rectTransform;
protected Vector2 originalSizeDelta;
private void Awake()
{
canvasGroup = GetComponent<CanvasGroup>();
rectTransform = GetComponent<RectTransform>();
originalSizeDelta = rectTransform.sizeDelta;
SetOff();
}
protected virtual void SetOn(float duration = 0f, Ease ease = Ease.Linear)
{
canvasGroup = (canvasGroup ? canvasGroup : GetComponent<CanvasGroup>());
canvasGroup.DOKill();
if (canvasGroup.alpha > 0.99f)
{
canvasGroup.alpha = 1f;
}
else
{
canvasGroup.DOFade(1f, duration).SetEase(ease);
}
}
protected virtual void SetOff(float duration = 0f, Ease ease = Ease.Linear)
{
canvasGroup = (canvasGroup ? canvasGroup : GetComponent<CanvasGroup>());
canvasGroup.DOKill();
if (canvasGroup.alpha < 0.01f)
{
canvasGroup.alpha = 0f;
}
else
{
canvasGroup.DOFade(0f, duration).SetEase(ease);
}
}
}