CapersProject/Assets/02.Scripts/CombatTitle.cs

90 lines
2.3 KiB
C#

using BlueWater.Audios;
using Sirenix.OdinInspector;
using TMPro;
using UnityEditor;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.InputSystem;
using UnityEngine.UI;
namespace BlueWater.Titles
{
public class CombatTitle : MonoBehaviour
{
[SerializeField]
private PlayerInput _playerInput;
[SerializeField]
private Button _startGameButton;
[SerializeField]
private TMP_Text _versionText;
[SerializeField]
private string _dailyBgm = "DailyBgm1";
private bool _isQuitting;
private void Awake()
{
InitializeComponents();
}
private void Start()
{
AudioManager.Instance.PlayBgm(_dailyBgm);
_startGameButton.onClick.AddListener(SceneController.Instance.FadeIn);
}
private void OnApplicationQuit()
{
_isQuitting = true;
}
private void OnDestroy()
{
if (_isQuitting) return;
_startGameButton.onClick.RemoveListener(SceneController.Instance.FadeIn);
}
[Button("컴포넌트 초기화")]
private void InitializeComponents()
{
_playerInput = GetComponent<PlayerInput>();
_startGameButton = transform.Find("TitleMenuUi/ButtonPanel/StartGameButton").GetComponent<Button>();
_versionText = transform.Find("VersionText").GetComponent<TMP_Text>();
_versionText.text = GetVersion();
}
private string GetVersion()
{
#if UNITY_EDITOR
return PlayerSettings.bundleVersion;
#else
return Application.version;
#endif
}
public void OnMenuInteraction(InputAction.CallbackContext context)
{
if (context.performed)
{
var current = EventSystem.current.currentSelectedGameObject;
if (!current) return;
var currenButton = current.GetComponent<Button>();
currenButton.onClick.Invoke();
}
}
public void QuitGame()
{
#if UNITY_EDITOR
UnityEditor.EditorApplication.isPlaying = false;
#else
Application.Quit();
#endif
}
}
}