Degullmok-client/Assets/Script/Main/MainPanelManager.cs

58 lines
1.7 KiB
C#

using UnityEngine;
using System;
using TMPro;
using UnityEngine.Serialization;
using UnityEngine.UI;
public class MainPanelManager : MonoBehaviour
{
[SerializeField] private LoadingPanelController loadingPanelController;
[SerializeField] private MainPanelController mainPanelController;
private UserManager _userManager; // UserManager 인스턴스 관리
private void Start()
{
if (UserManager.Instance == null)
{
GameObject userManagerObj = new GameObject("UserManager");
_userManager = userManagerObj.AddComponent<UserManager>();
}
// 로딩 화면 추가(자동 로그인 응답 전까지)
GameManager.Instance.panelManager.OpenLoadingPanel(false, true, true);
// 자동 로그인
TryAutoSignin();
}
private void TryAutoSignin()
{
NetworkManager.Instance.GetInfo((userInfo) =>
{
Debug.Log("자동 로그인 성공");
UserManager.Instance.SetUserInfo(userInfo);
UpdateMainPanelUI(GameManager.Instance.panelManager.OpenMainPanel);
loadingPanelController.StopLoading();
}, () =>
{
Debug.Log("자동 로그인 실패");
// 로딩 멈추기
loadingPanelController.StopLoading();
// 로그인 화면
GameManager.Instance.panelManager.OpenSigninPanel();
});
}
/// <summary>
/// 유저 별명, 급수를 서버에서 가져온 정보로 업데이트하여 메인화면에 표시
/// </summary>
public void UpdateMainPanelUI(Action success = null)
{
mainPanelController.UpdateUserInfo();
success?.Invoke();
}
}