2025-12-17 00:20:40 +00:00
|
|
|
using System;
|
2025-11-25 19:58:58 +00:00
|
|
|
using System.Collections;
|
2025-12-17 00:20:40 +00:00
|
|
|
using OneStore.Common; // 지우면 안됨
|
2025-11-25 19:58:58 +00:00
|
|
|
using TMPro;
|
|
|
|
|
using UnityEngine;
|
2025-12-17 00:20:40 +00:00
|
|
|
using UnityEngine.Networking;
|
2025-11-25 19:58:58 +00:00
|
|
|
using UnityEngine.U2D;
|
|
|
|
|
|
|
|
|
|
public class TitleInfo : MonoBehaviour
|
|
|
|
|
{
|
|
|
|
|
[SerializeField] TextMeshProUGUI label_msg, t_ver;
|
|
|
|
|
[SerializeField] GameObject go_LobbyUI;
|
|
|
|
|
|
2025-12-17 00:20:40 +00:00
|
|
|
const string VERSION_URL = "https://filgoodbanditshomepage.web.app/NightWard.txt";
|
|
|
|
|
|
2025-11-25 19:58:58 +00:00
|
|
|
private void Awake()
|
|
|
|
|
{
|
|
|
|
|
Screen.sleepTimeout = SleepTimeout.NeverSleep;
|
|
|
|
|
Application.targetFrameRate = 60;
|
|
|
|
|
go_LobbyUI.SetActive(false);
|
|
|
|
|
}
|
|
|
|
|
|
2025-12-17 00:20:40 +00:00
|
|
|
private void Start()
|
|
|
|
|
{
|
|
|
|
|
SetVersionText();
|
|
|
|
|
|
|
|
|
|
label_msg.text = "게임 버전 확인 중...";
|
|
|
|
|
|
|
|
|
|
StartCoroutine(LoadVersionData(
|
|
|
|
|
OnVersionSuccess,
|
|
|
|
|
OnVersionFail
|
|
|
|
|
));
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void SetVersionText()
|
2025-11-25 19:58:58 +00:00
|
|
|
{
|
|
|
|
|
t_ver.text = Application.version;
|
2025-12-17 00:20:40 +00:00
|
|
|
|
2025-11-25 19:58:58 +00:00
|
|
|
#if UNITY_EDITOR
|
|
|
|
|
t_ver.text += "(E)";
|
|
|
|
|
#else
|
|
|
|
|
t_ver.text += StoreEnvironment.GetStoreType() == StoreType.ONESTORE ? "(O)" : "(G)";
|
|
|
|
|
#endif
|
2025-12-17 00:20:40 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void OnVersionFail()
|
|
|
|
|
{
|
|
|
|
|
PopupUI.Ins.Set("게임 업데이트가 필요합니다.", DSUtil.Quit, DSUtil.Quit);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void OnVersionSuccess()
|
|
|
|
|
{
|
|
|
|
|
StartCoroutine(Co_Success());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
IEnumerator Co_Success()
|
|
|
|
|
{
|
2025-11-25 19:58:58 +00:00
|
|
|
label_msg.text = "게임 데이터를 읽고 있습니다.";
|
|
|
|
|
|
2025-12-17 00:20:40 +00:00
|
|
|
// 테이블 로딩 대기
|
|
|
|
|
while (!TableChecker.Ins.CheckAllLoad())
|
|
|
|
|
yield return null;
|
|
|
|
|
|
2025-11-25 19:58:58 +00:00
|
|
|
// UI 아틀라스 로드
|
2025-12-17 00:20:40 +00:00
|
|
|
yield return AddrResourceMgr.Ins.LoadObjectSequential<SpriteAtlas>(
|
|
|
|
|
"MainUI/UIAtlas.spriteatlasv2",
|
|
|
|
|
atlas => UIAtlasMgr.Ins.Set(atlas)
|
|
|
|
|
);
|
2025-11-25 19:58:58 +00:00
|
|
|
|
|
|
|
|
label_msg.text = "로비로 진입 중입니다.";
|
|
|
|
|
yield return null;
|
|
|
|
|
|
2025-12-17 00:20:40 +00:00
|
|
|
// 연출용 대기 (필요 없으면 제거 가능)
|
2025-11-25 19:58:58 +00:00
|
|
|
yield return new WaitForSeconds(3f);
|
2025-12-17 00:20:40 +00:00
|
|
|
|
2025-11-25 19:58:58 +00:00
|
|
|
gameObject.SetActive(false);
|
|
|
|
|
go_LobbyUI.SetActive(true);
|
2025-12-17 00:20:40 +00:00
|
|
|
|
2025-11-25 19:58:58 +00:00
|
|
|
SoundInfo.Ins.Play_BGM(eBGM.b001_BGM);
|
|
|
|
|
}
|
2025-12-17 00:20:40 +00:00
|
|
|
|
|
|
|
|
IEnumerator LoadVersionData(Action success, Action fail)
|
|
|
|
|
{
|
|
|
|
|
using (UnityWebRequest www = UnityWebRequest.Get(VERSION_URL))
|
|
|
|
|
{
|
|
|
|
|
yield return www.SendWebRequest();
|
|
|
|
|
|
|
|
|
|
// 네트워크 에러 처리
|
|
|
|
|
if (www.result != UnityWebRequest.Result.Success)
|
|
|
|
|
{
|
|
|
|
|
Debug.LogError($"Version check failed : {www.error}");
|
|
|
|
|
fail?.Invoke();
|
|
|
|
|
yield break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
string serverVersionText = www.downloadHandler.text;
|
|
|
|
|
|
|
|
|
|
if (string.IsNullOrEmpty(serverVersionText))
|
|
|
|
|
{
|
|
|
|
|
Debug.LogError("Version text is empty");
|
|
|
|
|
fail?.Invoke();
|
|
|
|
|
yield break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 개행 / 공백 제거
|
|
|
|
|
serverVersionText = serverVersionText.Trim();
|
|
|
|
|
|
|
|
|
|
Version serverVersion;
|
|
|
|
|
Version clientVersion;
|
|
|
|
|
|
|
|
|
|
// 안전한 버전 파싱
|
|
|
|
|
if (!Version.TryParse(serverVersionText, out serverVersion) ||
|
|
|
|
|
!Version.TryParse(Application.version, out clientVersion))
|
|
|
|
|
{
|
|
|
|
|
Debug.LogError($"Version parse failed : {serverVersionText}");
|
|
|
|
|
fail?.Invoke();
|
|
|
|
|
yield break;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (serverVersion > clientVersion)
|
|
|
|
|
fail?.Invoke();
|
|
|
|
|
else
|
|
|
|
|
success?.Invoke();
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-11-25 19:58:58 +00:00
|
|
|
}
|