EscapeShooter/My project/Assets/Project Files/Game/Scripts/UI/UIMainMenuButton.cs

58 lines
1.8 KiB
C#

using UnityEngine;
namespace Watermelon
{
[System.Serializable]
public class UIMainMenuButton
{
[SerializeField] RectTransform rect;
[SerializeField] AnimationCurve showStoreAdButtonsCurve;
[SerializeField] AnimationCurve hideStoreAdButtonsCurve;
[SerializeField] float showHideDuration;
private float savedRectPosX;
private float rectXPosBehindOfTheScreen;
private TweenCase showHideCase;
public void Init(float rectXPosBehindOfTheScreen)
{
this.rectXPosBehindOfTheScreen = rectXPosBehindOfTheScreen;
savedRectPosX = rect.anchoredPosition.x;
}
public void Show(bool immediately = false)
{
if (showHideCase != null && showHideCase.IsActive) return;
if (immediately)
{
rect.anchoredPosition = rect.anchoredPosition.SetX(savedRectPosX);
return;
}
//RESET
rect.anchoredPosition = rect.anchoredPosition.SetX(rectXPosBehindOfTheScreen);
showHideCase = rect.DOAnchoredPosition(rect.anchoredPosition.SetX(savedRectPosX), showHideDuration).SetCurveEasing(showStoreAdButtonsCurve);
}
public void Hide(bool immediately = false)
{
if (showHideCase != null && showHideCase.IsActive) return;
if (immediately)
{
rect.anchoredPosition = rect.anchoredPosition.SetX(rectXPosBehindOfTheScreen);
return;
}
//RESET
rect.anchoredPosition = rect.anchoredPosition.SetX(savedRectPosX);
showHideCase = rect.DOAnchoredPosition(rect.anchoredPosition.SetX(rectXPosBehindOfTheScreen), showHideDuration).SetCurveEasing(hideStoreAdButtonsCurve);
}
}
}