Degullmok-client/Assets/Script/UI_Panel/PanelController.cs
99jamin c187c2570c 스크롤 패널(랭킹) 제작
RankingItem 클래스를 생성해
프로필이미지, 이름, 승률 데이터를 한번에 받아와 패널에 표시
2025-03-14 04:36:36 +09:00

52 lines
1.6 KiB
C#

using System;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using DG.Tweening;
[RequireComponent(typeof(CanvasGroup))]
public class PanelController : MonoBehaviour
{
[SerializeField] private RectTransform panelRectTransform; //팝업창 UI를 조작할 변수 // 자기 자신 할당
private CanvasGroup backGroundCanvasGroup; // 배경 페이드 효과를 위한 변수
public delegate void PanelControllerHideDelegate();
private void Awake()
{
backGroundCanvasGroup = GetComponent<CanvasGroup>();
}
/// <summary>
/// Panel 표시 함수
/// 알파값과 크기를 0으로 줄였다가 1로 페이드
/// </summary>
public void Show()
{
backGroundCanvasGroup.alpha = 0;
panelRectTransform.localScale = Vector3.zero;
backGroundCanvasGroup.DOFade(1, 0.3f).SetEase(Ease.Linear);
panelRectTransform.DOScale(1, 0.3f).SetEase(Ease.OutBack);
}
/// <summary>
/// Panel 숨기기 함수
/// 알파값과 크기를 0으로 페이드
/// </summary>
public void Hide(PanelControllerHideDelegate hideDelegate = null)
{
backGroundCanvasGroup.alpha = 1;
panelRectTransform.localScale = Vector3.one;
backGroundCanvasGroup.DOFade(0, 0.3f).SetEase(Ease.Linear);
panelRectTransform.DOScale(0, 0.3f)
.SetEase(Ease.InBack).OnComplete(() =>
{
hideDelegate?.Invoke();
Destroy(gameObject);
});
}
}