2024-10-31 12:17:10 +00:00
|
|
|
using System;
|
|
|
|
using System.Collections;
|
2024-10-08 06:12:27 +00:00
|
|
|
using BlueWater.Audios;
|
|
|
|
using Sirenix.OdinInspector;
|
|
|
|
using TMPro;
|
2024-10-31 12:17:10 +00:00
|
|
|
using Unity.VisualScripting;
|
2024-10-08 06:12:27 +00:00
|
|
|
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 Button _startGameButton;
|
2024-10-31 12:17:10 +00:00
|
|
|
[SerializeField]
|
|
|
|
private Button _settingButton;
|
|
|
|
[SerializeField]
|
|
|
|
private Button _exitButton;
|
|
|
|
|
|
|
|
private bool onButtonClicked = false;
|
2024-10-08 06:12:27 +00:00
|
|
|
|
|
|
|
[SerializeField]
|
|
|
|
private TMP_Text _versionText;
|
|
|
|
|
|
|
|
[SerializeField]
|
2024-10-31 12:17:10 +00:00
|
|
|
private string _dailyBgm = "DailyBgm1";
|
2024-10-08 06:12:27 +00:00
|
|
|
|
2024-10-31 12:17:10 +00:00
|
|
|
private bool _isKey = false;
|
|
|
|
|
|
|
|
private bool _isQuitting;
|
2024-10-08 06:12:27 +00:00
|
|
|
|
2024-10-31 12:17:10 +00:00
|
|
|
[SerializeField]
|
|
|
|
private PlayerInputKeyManager _keyManager;
|
|
|
|
|
2024-10-08 06:12:27 +00:00
|
|
|
private void Awake()
|
|
|
|
{
|
|
|
|
InitializeComponents();
|
|
|
|
}
|
|
|
|
|
|
|
|
private void Start()
|
|
|
|
{
|
2024-10-31 12:17:10 +00:00
|
|
|
StartCoroutine(nameof(Initialize));
|
|
|
|
|
2024-10-08 06:12:27 +00:00
|
|
|
AudioManager.Instance.PlayBgm(_dailyBgm);
|
|
|
|
_startGameButton.onClick.AddListener(SceneController.Instance.FadeIn);
|
2024-10-31 12:17:10 +00:00
|
|
|
|
|
|
|
_startGameButton.onClick.AddListener(() => { onButtonClicked = true; });
|
|
|
|
_settingButton.onClick.AddListener(() => { onButtonClicked = true; });
|
|
|
|
_exitButton.onClick.AddListener(() => { onButtonClicked = true; });
|
|
|
|
|
|
|
|
_keyManager.AddOnActionKeyboard(OnKeyboard);
|
|
|
|
_keyManager.AddOnActionMouse(OnMouse);
|
|
|
|
//
|
|
|
|
|
|
|
|
//if(!onButtonClicked) ;
|
|
|
|
}
|
|
|
|
|
|
|
|
private void OnKeyboard()
|
|
|
|
{
|
|
|
|
Debug.Log("Keyboard");
|
|
|
|
EventSystem.current.SetSelectedGameObject(_startGameButton.gameObject);
|
|
|
|
}
|
|
|
|
|
|
|
|
private void OnMouse()
|
|
|
|
{
|
|
|
|
Debug.Log("Mouse");
|
|
|
|
if (!onButtonClicked)
|
|
|
|
{
|
|
|
|
EventSystem.current.SetSelectedGameObject(null);
|
|
|
|
}
|
|
|
|
|
2024-10-08 06:12:27 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
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();
|
|
|
|
}
|
|
|
|
|
2024-10-31 12:17:10 +00:00
|
|
|
private IEnumerator Initialize()
|
|
|
|
{
|
|
|
|
PlayerInputKeyManager.Instance.SetCurrentPlayerInput(_playerInput);
|
|
|
|
yield return new WaitUntil(() => _playerInput.IsInitialized());
|
|
|
|
|
|
|
|
PlayerInputKeyManager.Instance.DisableAllActionMaps();
|
|
|
|
PlayerInputKeyManager.Instance.SwitchCurrentActionMap(InputActionMaps.CombatTitle);
|
|
|
|
EventManager.InvokeInitializedPlayerInput();
|
|
|
|
}
|
|
|
|
|
2024-10-08 06:12:27 +00:00
|
|
|
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
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|