64 lines
1.7 KiB
C#
64 lines
1.7 KiB
C#
using FirstVillain.Converter;
|
|
using FirstVillain.Entities;
|
|
using FirstVillain.EventBus;
|
|
using System.Collections;
|
|
using System.Collections.Generic;
|
|
using UnityEngine;
|
|
using UnityEngine.AddressableAssets;
|
|
using UnityEngine.ResourceManagement.AsyncOperations;
|
|
|
|
public class IntroSceneController : MonoBehaviour
|
|
{
|
|
private int _loadedTableCount = 0;
|
|
|
|
private void Start()
|
|
{
|
|
UIManager.Instance.OpenUI(E_UI_TYPE.UIPanelIntro);
|
|
EventBus.Instance.Subscribe<EventLoadAssets>(OnStartLoadAssets);
|
|
}
|
|
|
|
private void OnDestroy()
|
|
{
|
|
EventBus.Instance.Unsubscribe<EventLoadAssets>(OnStartLoadAssets);
|
|
}
|
|
|
|
private void OnStartLoadAssets(EventLoadAssets e)
|
|
{
|
|
LoadTable();
|
|
StartCoroutine(LoadingGauge());
|
|
}
|
|
|
|
private IEnumerator LoadingGauge()
|
|
{
|
|
float maxGauge = TableManager.Instance.LoadTableCount;
|
|
while (_loadedTableCount < maxGauge)
|
|
{
|
|
EventBus.Instance.Publish(new EventUpdateTableLadingProgress(_loadedTableCount / maxGauge));
|
|
yield return null;
|
|
}
|
|
|
|
EventBus.Instance.Publish(new EventUpdateTableLadingProgress(1));
|
|
SceneLoadManager.Instance.LoadSceneAsync("Lobby", UnityEngine.SceneManagement.LoadSceneMode.Single, OnCompleteLoad);
|
|
}
|
|
public void OnCompleteLoad()
|
|
{
|
|
EventBus.Instance.Publish(new EventStartLobby());
|
|
UIManager.Instance.ReleaseUI();
|
|
}
|
|
|
|
private void LoadTable()
|
|
{
|
|
TableManager.Instance.LoadTable<JPlayerData>(E_TABLE.JPlayer, OnPlayerDataLoaded);
|
|
}
|
|
|
|
private void OnPlayerDataLoaded(Wrapper<JPlayerData> data)
|
|
{
|
|
//데이터 세팅
|
|
//아직 서버는 고려하지 않는다.
|
|
GameManager.Instance.SetPlayerData(data.list);
|
|
_loadedTableCount++;
|
|
}
|
|
|
|
|
|
}
|