using System.Collections; 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 TycoonTitle : MonoBehaviour { [SerializeField] private PlayerInput _playerInput; [SerializeField] private GameObject _titleMenuUiPanel; [SerializeField] private TitleSetting _titleSetting; [SerializeField] private Button _startGameButton; [SerializeField] private Button _settingButton; [SerializeField] private Button _exitButton; private bool _onButtonClicked; [SerializeField] private TMP_Text _versionText; [SerializeField] private string _dailyBgm = "DailyBgm1"; private bool _isQuitting; [SerializeField] private PlayerInputKeyManager _keyManager; private void Awake() { InitializeComponents(); } private void Start() { StartCoroutine(nameof(Initialize)); AudioManager.Instance.PlayBgm(_dailyBgm); _startGameButton.onClick.AddListener(SceneController.Instance.FadeIn); _startGameButton.onClick.AddListener(() => { _onButtonClicked = true; }); _settingButton.onClick.AddListener(() => { _onButtonClicked = true; }); _exitButton.onClick.AddListener(() => { _onButtonClicked = true; }); _keyManager.AddOnActionKeyboard(OnKeyboard); _keyManager.AddOnActionMouse(OnMouse); } private void OnKeyboard() { EventSystem.current.SetSelectedGameObject(_startGameButton.gameObject); } private void OnMouse() { if (!_onButtonClicked) { EventSystem.current.SetSelectedGameObject(null); } } private void OnApplicationQuit() { _isQuitting = true; } private void OnDestroy() { if (_isQuitting) return; _startGameButton.onClick.RemoveListener(SceneController.Instance.FadeIn); } [Button("컴포넌트 초기화")] private void InitializeComponents() { _playerInput = GetComponent(); _titleMenuUiPanel = transform.Find("TitleMenuUi/Panel").gameObject; _startGameButton = transform.Find("TitleMenuUi/Panel/ButtonPanel/StartGameButton").GetComponent