create menu UI
This commit is contained in:
@@ -14,7 +14,7 @@ public enum Location
|
||||
Sherbinka,
|
||||
BulevardSlavyanski,
|
||||
Solnechaya,
|
||||
Shukenskaya,
|
||||
Shukinskaya,
|
||||
AprelevkaDepo
|
||||
}
|
||||
|
||||
@@ -23,37 +23,44 @@ public class GameSystem : MonoBehaviour
|
||||
public static GameSystem Instance { get; private set; }
|
||||
public List<IGameComponent> gameComponents { get; private set; } = new List<IGameComponent>();
|
||||
|
||||
[SerializeField] UIMainMenu mainMenu;
|
||||
[Space]
|
||||
[SerializeField] GameObject[] sigletonComponents;
|
||||
[SerializeField] CanvasGroup loadingCanvas;
|
||||
|
||||
public event Action OnSceneLoaded;
|
||||
|
||||
public Dictionary<string, string> locationsName { get; private set; } = new()
|
||||
public Dictionary<string, Location> locationsName { get; private set; } = new()
|
||||
{
|
||||
{"StationPechatnici", "Станция Печатники"},
|
||||
{"", "Станция Щербинка"},
|
||||
{"", "Станция Славянский бульвар"},
|
||||
{"StationSolnechnaya", "Станция Солнечная"},
|
||||
{"StationShchukinskaya", "Станция Щукенская"},
|
||||
{"", "Депо Апрелевка"}
|
||||
{"StationPechatnici", Location.Pechatniki},
|
||||
{"1", Location.Sherbinka},
|
||||
{"2", Location.BulevardSlavyanski},
|
||||
{"StationSolnechnaya", Location.Solnechaya},
|
||||
{"StationShchukinskaya", Location.Shukinskaya},
|
||||
{"3", Location.AprelevkaDepo}
|
||||
};
|
||||
|
||||
public void LoadScene(string sceneName)
|
||||
public async void LoadScene(string sceneName)
|
||||
{
|
||||
if(!loadingCanvas.gameObject.activeSelf)
|
||||
loadingCanvas.gameObject.SetActive(true);
|
||||
|
||||
loadingCanvas.DOFade(1, .5f).OnComplete(async() =>
|
||||
mainMenu.UpdateLocationMenu(locationsName[sceneName]);
|
||||
|
||||
var qrReader = FindObjectOfType<QRCodeReader>();
|
||||
qrReader.camTexture.Stop();
|
||||
|
||||
var sceneLoadingOperation = SceneManager.LoadSceneAsync(sceneName, LoadSceneMode.Single);
|
||||
while(!sceneLoadingOperation.isDone) await Task.Yield();
|
||||
|
||||
OnSceneLoaded?.Invoke();
|
||||
|
||||
FindObjectOfType<SceneHandler>().OnSceneLoaded += ()=>
|
||||
{
|
||||
var qrReader = FindObjectOfType<QRCodeReader>();
|
||||
qrReader.camTexture.Stop();
|
||||
mainMenu.gameObject.SetActive(true);
|
||||
};
|
||||
}
|
||||
|
||||
var sceneLoadingOperation = SceneManager.LoadSceneAsync(sceneName, LoadSceneMode.Single);
|
||||
while(!sceneLoadingOperation.isDone) await Task.Yield();
|
||||
|
||||
OnSceneLoaded?.Invoke();
|
||||
loadingCanvas.gameObject.SetActive(false);
|
||||
});
|
||||
public void LeaveScene()
|
||||
{
|
||||
var sceneLoadingOperation = SceneManager.LoadSceneAsync("MainMenu",
|
||||
LoadSceneMode.Single);
|
||||
}
|
||||
|
||||
public void AddGameComponent(IGameComponent component)
|
||||
@@ -80,7 +87,6 @@ public class GameSystem : MonoBehaviour
|
||||
}
|
||||
|
||||
DontDestroyOnLoad(this);
|
||||
QRCodeReader.Instance.OnQRCodeRead += LoadScene;
|
||||
}
|
||||
|
||||
void Update()
|
||||
|
||||
Reference in New Issue
Block a user