48 lines
1.0 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|