using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using UnityEngine.EventSystems; using DG.Tweening; using Unity.VisualScripting; using UnityEngine.Tilemaps; using DG.Tweening.Plugins.Options; using UnityEngine.SocialPlatforms; using DarkTonic.MasterAudio; using UnityEngine.SceneManagement; public class LobbyManager : MonoBehaviour { public GameObject UiWorldMap; public GameObject ButtonPopUp; public Transform heroImage; public Transform talkBox; private bool isFadingOut = false; public void WorldMapBtnClick() { MasterAudio.PlaySound("SFX_Click", 1f, null); StartCoroutine(LoadSceneAfterDelay(4, 0.5f)); } public void MenuBtnClick() { MasterAudio.PlaySound("SFX_Click", 1f, null); // ÆäÀ̵å ÀÎ ButtonPopUp.SetActive(true); CanvasGroup canvasGroup = ButtonPopUp.GetComponent(); canvasGroup.alpha = 0; // óÀ½¿¡ ¾ËÆÄ °ªÀ» 0À¸·Î ¼³Á¤ canvasGroup.DOFade(1f, 0.5f).OnComplete(() => { // 1ÃÊ ÈÄ¿¡ ÆäÀÌµå ¾Æ¿ô ½ÃÀÛ StartCoroutine(FadeOutAfterDelay()); }); } private IEnumerator FadeOutAfterDelay() { if (isFadingOut) { // ÀÌ¹Ì ¾Ö´Ï¸ÞÀ̼ÇÀÌ ½ÇÇà ÁßÀÌ¸é ¾Æ¹«°Íµµ ÇÏÁö ¾ÊÀ½ yield break; } isFadingOut = true; // ¾Ö´Ï¸ÞÀ̼ÇÀ» ½ÇÇà ÁßÀ¸·Î Ç¥½Ã yield return new WaitForSeconds(1f); // 1ÃÊ ´ë±â CanvasGroup canvasGroup = ButtonPopUp.GetComponent(); canvasGroup.DOFade(0f, 0.5f).OnComplete(() => { // ÆäÀÌµå ¾Æ¿ô ¿Ï·á ÈÄ °ÔÀÓ ¿ÀºêÁ§Æ® ºñȰ¼ºÈ­ ButtonPopUp.SetActive(false); isFadingOut = false; // ¾Ö´Ï¸ÞÀ̼ÇÀÌ Á¾·áµÇ¾úÀ½À» Ç¥½Ã }); } public void HeroImgBtnClick() { // ÇöÀç À§Ä¡ ÀúÀå Vector3 originalPosition = heroImage.position; // TalkBox Å©±â¸¦ 0¿¡¼­ 1·Î Ű¿ì´Â ¾Ö´Ï¸ÞÀÌ¼Ç talkBox.localScale = Vector3.zero; // óÀ½¿¡ Å©±â¸¦ 0À¸·Î ¼³Á¤ // Y À§Ä¡ º¯°æ heroImage.DOMoveY(heroImage.position.y + 30f, 0.3f).SetEase(Ease.OutBack).OnComplete(() => { // ¿ø·¡ À§Ä¡·Î µÇµ¹¾Æ¿À±â heroImage.DOMove(originalPosition, 0.1f).SetEase(Ease.InBack).OnComplete(() => { // Á¿ì·Î Èçµé¸² È¿°ú heroImage.DOPunchPosition(new Vector3(10f, 0f, 0f), 1f); // Å©±â¸¦ 1·Î Ű¿ò talkBox.gameObject.SetActive(true); // GameObject¸¦ Ȱ¼ºÈ­ÇÕ´Ï´Ù. talkBox.DOScale(Vector3.one, 0.3f).SetEase(Ease.OutBack).OnComplete(() => { // 2ÃÊ ÈÄ¿¡ Å©±â¸¦ 0À¸·Î ÁÙ¿© »ç¶óÁö´Â ¾Ö´Ï¸ÞÀÌ¼Ç DOTween.Sequence() .AppendInterval(1.5f) // 1.2ÃÊ ´ë±â .Append(talkBox.DOScale(Vector3.zero, 0.3f).SetEase(Ease.InBack).OnComplete(() => { // ¾Ö´Ï¸ÞÀÌ¼Ç ¿Ï·á ÈÄ Ã³¸®ÇÒ ³»¿ëÀ» ¿©±â¿¡ Ãß°¡ÇÒ ¼ö ÀÖ½À´Ï´Ù. })); }); }); }); } private IEnumerator LoadSceneAfterDelay(int sceneIndex, float delay) { yield return new WaitForSeconds(delay); SceneManager.LoadScene(sceneIndex); } }