Framwork/Assets/Scripts/Runtime/UI/Other/CarouselImageItem.cs

72 lines
1.7 KiB
C#

using System;
using DG.Tweening;
using UnityEngine;
using UnityEngine.UI;
namespace Runtime
{
[RequireComponent(typeof(CanvasGroup))]
public class CarouselImageItem : MonoBehaviour
{
private Button button;
private CanvasGroup CanvasGroup;
private RectTransform Rect;
public Button Button => button;
private void Awake()
{
CanvasGroup = GetComponent<CanvasGroup>();
Rect = GetComponent<RectTransform>();
button = GetComponent<Button>();
}
public void AppearAtPos(Vector2 pos, Vector3 size)
{
CanvasGroup.alpha = 0;
SetBlock(true);
Rect.anchoredPosition = pos;
transform.localScale = size;
if (size == Vector3.one)
{
CanvasGroup.DOFade(1, 0.5f);
}
else
{
CanvasGroup.DOFade(.5f, 0.5f);
}
}
public void MoveToPos(Vector2 pos, Vector3 size)
{
Rect.DOAnchorPos(pos, 0.5f);
transform.DOScale(size, 0.5f);
if (size == Vector3.one)
{
CanvasGroup.DOFade(1, 0.5f);
}
else
{
CanvasGroup.DOFade(.5f, 0.5f);
}
}
public void Disappear()
{
SetBlock(false);
CanvasGroup.DOFade(0, 0.5f);
}
public void Hide()
{
CanvasGroup.alpha = 0;
SetBlock(false);
}
private void SetBlock(bool isBlock)
{
CanvasGroup.interactable = isBlock;
CanvasGroup.blocksRaycasts = isBlock;
}
}
}