58 lines
1.8 KiB
C#
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);
|
|
}
|
|
}
|
|
}
|