153 lines
4.4 KiB
C#
153 lines
4.4 KiB
C#
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 MenuManager : MonoBehaviour
|
|
{
|
|
public GameObject PattenSet;
|
|
public float patternSpeed;
|
|
private SpriteRenderer[] spriteRenderers;
|
|
private Vector3[] initialScales;
|
|
|
|
public GameObject UiGameSet;
|
|
public GameObject UiAchivement;
|
|
public GameObject UiOptionSet;
|
|
private GameObject openedUI;
|
|
|
|
|
|
public Slider UiSliderSfx;
|
|
public Slider UiSliderBgm;
|
|
|
|
void Awake()
|
|
{
|
|
UiGameSet.transform.DOScale(Vector3.zero, 0f);
|
|
UiOptionSet.transform.DOScale(Vector3.zero, 0f);
|
|
UiAchivement.transform.DOScale(Vector3.zero, 0f);
|
|
//MasterAudio.PlaySound("Bgm_title", 0.7f, null, 1.5f);
|
|
UiSliderSfx.value = 1f;
|
|
UiSliderBgm.value = 1f;
|
|
|
|
}
|
|
private void Start()
|
|
{
|
|
DOTween.SetTweensCapacity(500, 50);
|
|
spriteRenderers = PattenSet.GetComponentsInChildren<SpriteRenderer>();
|
|
|
|
MasterAudio.PlaySound("BGM_TITLE", 0.7f, null, 1.0f);
|
|
|
|
foreach (SpriteRenderer renderer in spriteRenderers)
|
|
{
|
|
renderer.DOColor(new Color(1f, 1f, 1f, 1f), 2.5f).SetDelay(3f);
|
|
}
|
|
|
|
initialScales = new Vector3[spriteRenderers.Length];
|
|
for (int i = 0; i < spriteRenderers.Length; i++)
|
|
{
|
|
initialScales[i] = spriteRenderers[i].transform.localScale;
|
|
spriteRenderers[i].transform.localScale *= 0.1f; // 최초 크기를 10%로 조절
|
|
}
|
|
|
|
// 원래 크기로 돌아가는 애니메이션을 실행합니다.
|
|
for (int i = 0; i < spriteRenderers.Length; i++)
|
|
{
|
|
spriteRenderers[i].transform.DOScale(initialScales[i], 4.0f);
|
|
}
|
|
}
|
|
|
|
public void InitBtnState()
|
|
{
|
|
EventSystem.current.SetSelectedGameObject(null);
|
|
}
|
|
|
|
public void GameBtnClick()
|
|
{
|
|
CloseOpenedUI();
|
|
UiGameSet.transform.DOScale(Vector3.one, 0.5f).SetEase(Ease.OutBack);
|
|
MasterAudio.PlaySound("SFX_Click", 1f, null);
|
|
openedUI = UiGameSet;
|
|
}
|
|
public void OptionBtnClick()
|
|
{
|
|
CloseOpenedUI();
|
|
UiOptionSet.transform.DOScale(Vector3.one, 0.5f).SetEase(Ease.OutBack);
|
|
MasterAudio.PlaySound("SFX_Click", 1f, null);
|
|
openedUI = UiOptionSet;
|
|
}
|
|
public void AchivementBtnClick()
|
|
{
|
|
CloseOpenedUI();
|
|
UiAchivement.transform.DOScale(Vector3.one, 0.5f).SetEase(Ease.OutBack);
|
|
MasterAudio.PlaySound("SFX_Click", 1f, null);
|
|
openedUI = UiAchivement;
|
|
}
|
|
|
|
|
|
public void ExitBtnClick()
|
|
{
|
|
MasterAudio.PlaySound("SFX_UI_Back", 1f, null);
|
|
/* if (UiGameSet.transform.localScale== Vector3.one)
|
|
{
|
|
UiGameSet.transform.DOScale(Vector3.zero, 0.2f).SetEase(Ease.InBack);
|
|
}
|
|
else if (UiAchivement.transform.localScale == Vector3.one)
|
|
{
|
|
UiAchivement.transform.DOScale(Vector3.zero, 0.2f).SetEase(Ease.InBack);
|
|
}
|
|
else if (UiOptionSet.transform.localScale == Vector3.one)
|
|
{
|
|
UiOptionSet.transform.DOScale(Vector3.zero, 0.2f).SetEase(Ease.InBack);
|
|
}*/
|
|
if(openedUI!= null)
|
|
{
|
|
openedUI.transform.DOScale(Vector3.zero, 0.2f).SetEase(Ease.InBack);
|
|
openedUI = null;
|
|
}
|
|
else
|
|
{
|
|
//Application.Quit();
|
|
}
|
|
|
|
}
|
|
public void NewBtnClick()
|
|
{
|
|
MasterAudio.PlaySound("SFX_GameStart", 0.7f, null);
|
|
StartCoroutine(LoadSceneAfterDelay(2, 1.0f));
|
|
|
|
}
|
|
private IEnumerator LoadSceneAfterDelay(int sceneIndex, float delay)
|
|
{
|
|
yield return new WaitForSeconds(delay);
|
|
MasterAudio.StopAllOfSound("BGM_TITLE");
|
|
SceneManager.LoadScene(sceneIndex);
|
|
}
|
|
public void SfxSliderChange()
|
|
{
|
|
MasterAudio.MasterVolumeLevel = UiSliderSfx.value;
|
|
|
|
|
|
}
|
|
public void BgmSliderChange()
|
|
{
|
|
MasterAudio.PlaylistMasterVolume = UiSliderBgm.value;
|
|
}
|
|
|
|
private void CloseOpenedUI()
|
|
{
|
|
if(openedUI != null)
|
|
{
|
|
openedUI.transform.DOScale(Vector3.zero, 0.2f).SetEase(Ease.InBack);
|
|
openedUI = null;
|
|
}
|
|
|
|
}
|
|
}
|