72 lines
1.7 KiB
C#
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;
|
|
}
|
|
}
|
|
} |