using MEC; using Newtonsoft.Json; using System.Collections.Generic; using UnityEngine; using UnityEngine.SceneManagement; public class GameManager : DontDestroy { //작업 사이즈 : 2160x1080 public int MultyNum; public eScene NowScene; public bool Over; private CoroutineHandle corExcel; /// /// 현재 엑셀 처리가 끝났는지 확인하는 부분. /// public bool isExcel { get { return corExcel != null || corExcel.IsRunning; } } protected override void OnStart() { Statics.version = PlayerPrefs.GetString("version"); DownlodeResp request = new DownlodeResp(); request.Request((data) => { if(data.data != "") { string excelDatas = Crypto.Instance.Decompress(data.data); string cryptoExcel = Crypto.Instance.Encrypt(excelDatas); Statics.excelDatas = JsonConvert.DeserializeObject(excelDatas); corExcel = Timing.RunCoroutine(Statics.excelDatas.ToJson(UnitDataSet)); Statics.version = data.version; PlayerPrefs.SetString("e", cryptoExcel); PlayerPrefs.SetString("version", data.version); } else { Statics.excelDatas = JsonConvert.DeserializeObject(Crypto.Instance.Decrypt(PlayerPrefs.GetString("e"))); corExcel = Timing.RunCoroutine(Statics.excelDatas.ToJson(UnitDataSet)); } }); } private void UnitDataSet() { Statics.units = new Dictionary(); foreach (var data in Statics.excelDatas.unitData) { GameObject obj = Resources.Load($"Unit/{data.Value.name}"); if (obj != null) { obj.GetComponent().DataSet(data.Value); Statics.units.Add(data.Value.name, obj); } } } //public float x = 2160f; //public float y = 1080f; //현재 등록되어 있는 Scene을 입력하면 현재 열려있는 씬이 무엇인지 NowScene을 통해 알 수 있게됩니다. //File > BuildSettings에 등록한 Scene이름만 순서대로 추가해 주세요 public enum eScene { Title = 0, Main, Game, Play } //등록한 다음씬으로 이동할수 있습니다 //GameManager.Instance.NextScene(GameManager.eScene.원하는 씬이름); //이렇게 사용한다면 원하는 씬으로 넘어갈 수 있습니다. //입력하지 않고 GameManager.Instance.NextScene();만 호출한다면 현재씬의 바로 다음씬으로 이동합니다. public void NextScene(eScene GoingScene) { SceneManager.LoadScene((int)GoingScene); } public void NextScene() { SceneManager.LoadScene(((int)NowScene) + 1); } }