IdleGirl/Assets/2_Codes/MenuManager.cs

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;
}
}
}