52 lines
1.6 KiB
C#
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);
|
|
});
|
|
}
|
|
}
|