StartUp.cs 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. using Cysharp.Threading.Tasks;
  2. using Eiko.YaSDK;
  3. using Eiko.YaSDK.Data;
  4. using JTSystems;
  5. using UnityEngine;
  6. using UnityEngine.SceneManagement;
  7. using UnityEngine.UI;
  8. public class StartUp : MonoBehaviour
  9. {
  10. private static GameObject LoadingScreenInstance;
  11. [SerializeField] private GameObject LoadScreen;
  12. [SerializeField] private Image loadingImage;
  13. [SerializeField] private int _levelOverride;
  14. private const int gamePlaySceneIndex = 1;
  15. private async void Start()
  16. {
  17. LeanTween.rotateAroundLocal(loadingImage.gameObject, Vector3.forward, 360f, 2f).setLoopClamp();
  18. LoadingScreenInstance = LoadScreen;
  19. DontDestroyOnLoad(LoadScreen);
  20. YandexSDK.instance.InitializePurchases();
  21. await YandexPrefs.Init();
  22. if(_levelOverride > 0)
  23. YanGamesSaveManager.SaveLevel(_levelOverride - 1);
  24. await SceneManager.LoadSceneAsync(gamePlaySceneIndex);
  25. }
  26. /// <summary>
  27. /// ?????????? ??????????? ?????
  28. /// </summary>
  29. public static void EndLoad()
  30. {
  31. if(LoadingScreenInstance)
  32. Destroy(LoadingScreenInstance);
  33. else
  34. Debug.LogWarning("EndLoad should be called once after initial initialization");
  35. }
  36. }