app.hypergames.hypersdk 1.9.0-exhibition.5 → 1.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (76) hide show
  1. package/CHANGELOG.md +96 -13
  2. package/Editor/Scripts/Tools/HyperBuildAssistant.cs +17 -2
  3. package/HyperLoader.unity +3 -3
  4. package/Runtime/Internal/Bootstrap/HyperLoader.cs +7 -15
  5. package/Runtime/Internal/Core/HyperRuntime.cs +30 -0
  6. package/Runtime/Internal/Managers/BackendManager.cs +218 -52
  7. package/Runtime/Internal/Managers/DataManager.cs +39 -4
  8. package/Runtime/Internal/Managers/GameManager.cs +185 -46
  9. package/Runtime/Internal/Managers/TimeManager.cs +71 -20
  10. package/Runtime/Internal/ScriptableObjects/HyperSDKSettings.cs +1 -1
  11. package/Runtime/Internal/UI/Animation/SlideUp.cs +12 -2
  12. package/Runtime/Internal/UI/Components/ConnectionStatusIcon.cs +1 -6
  13. package/Runtime/Internal/UI/Components/RoundedRawImage.cs +146 -0
  14. package/Runtime/Internal/UI/Components/RoundedRawImage.cs.meta +11 -0
  15. package/Runtime/Internal/UI/Modals/GameOverModal.cs +16 -5
  16. package/Runtime/Internal/UI/Modals/GamePausedModal.cs +17 -15
  17. package/Runtime/Internal/UI/Modals/TutorialAnnouncementModal.cs +78 -0
  18. package/Runtime/Internal/UI/Modals/TutorialAnnouncementModal.cs.meta +2 -0
  19. package/Runtime/Internal/UI/Modals/TutorialButton.cs +13 -10
  20. package/Runtime/Internal/UI/Modals/TutorialLoaderModal.cs +31 -4
  21. package/Runtime/Internal/UI/Modals/TutorialModal.cs +815 -48
  22. package/Runtime/Internal/Utils/HyperConstants.cs +1 -1
  23. package/Runtime/Plugins/WebGL/HyperTutorialCachePlugin.jslib +37 -51
  24. package/Runtime/Public/Core/HyperSDK.cs +40 -1
  25. package/Runtime/Public/IgnoreSafeArea.cs +58 -0
  26. package/Runtime/Public/IgnoreSafeArea.cs.meta +11 -0
  27. package/Runtime/Resources/HyperGameContentConfig.asset.meta +1 -1
  28. package/Runtime/Resources/Materials/RoundedRawImage.mat +65 -0
  29. package/Runtime/Resources/Materials/RoundedRawImage.mat.meta +8 -0
  30. package/Runtime/Resources/Materials.meta +8 -0
  31. package/Runtime/Resources/RenderTextures/TutorialVideoTexture P.renderTexture +3 -3
  32. package/Runtime/Resources/Shaders/RoundedRawImage.shader +142 -0
  33. package/Runtime/Resources/Shaders/RoundedRawImage.shader.meta +10 -0
  34. package/Runtime/Resources/Shaders/RoundedStrip.shader +152 -0
  35. package/Runtime/Resources/Shaders/RoundedStrip.shader.meta +10 -0
  36. package/Runtime/Resources/Shaders.meta +8 -0
  37. package/Runtime/Resources/Sprites/Frames/Square.png +0 -0
  38. package/Runtime/Resources/Sprites/{TutorialModal/P Container.png.meta → Frames/Square.png.meta} +35 -18
  39. package/Runtime/Resources/Sprites/Hyper Atlas.spriteatlasv2 +1 -0
  40. package/Runtime/Resources/Sprites/Small Icons/Play.png +0 -0
  41. package/Runtime/Resources/Sprites/{Demo Label.png.meta → Small Icons/Play.png.meta } +11 -11
  42. package/Runtime/Resources/Sprites/TutorialModal/Button_Back.png.meta +1 -1
  43. package/Runtime/Resources/Sprites/TutorialModal/Button_Next.png.meta +1 -1
  44. package/Runtime/Resources/Sprites/TutorialModal/Knob.png.meta +1 -1
  45. package/Runtime/Resources/UIPrefabs/ConnectionStatusBar.prefab +10 -10
  46. package/Runtime/Resources/UIPrefabs/ControlBar.prefab +1 -1
  47. package/Runtime/Resources/UIPrefabs/GamePausedModal_Battle.prefab +123 -25
  48. package/Runtime/Resources/UIPrefabs/GamePausedModal_Battle_Landscape.prefab +252 -83
  49. package/Runtime/Resources/UIPrefabs/GamePausedModal_Practice.prefab +342 -43
  50. package/Runtime/Resources/UIPrefabs/GamePausedModal_Practice_Landscape.prefab +182 -9
  51. package/Runtime/Resources/UIPrefabs/IndicatorCircle.prefab +2 -2
  52. package/Runtime/Resources/UIPrefabs/LoadingFailedModal.prefab +7 -7
  53. package/Runtime/Resources/UIPrefabs/RetryTimeExpiredModal_Landscape.prefab +13 -1
  54. package/Runtime/Resources/UIPrefabs/ScoreSubmissionFailedModal_Landscape.prefab +2 -2
  55. package/Runtime/Resources/UIPrefabs/SessionTimedOutModal.prefab +1 -1
  56. package/Runtime/Resources/UIPrefabs/{Hyper Demo Label.prefab → TutorialAnnouncementModal.prefab} +286 -222
  57. package/Runtime/Resources/UIPrefabs/{Hyper Demo Label.prefab.meta → TutorialAnnouncementModal.prefab.meta} +1 -1
  58. package/Runtime/Resources/UIPrefabs/TutorialLandscapeModal.prefab +1612 -1182
  59. package/Runtime/Resources/UIPrefabs/TutorialLandscapeModal.prefab.meta +1 -1
  60. package/Runtime/Resources/UIPrefabs/TutorialPortraitModal.prefab +1423 -962
  61. package/Runtime/Shared/DTOs/TutorialData.cs +18 -1
  62. package/package.json +1 -1
  63. package/Runtime/Resources/Sprites/Demo Label.png +0 -0
  64. package/Runtime/Resources/Sprites/TutorialModal/L Container.png +0 -0
  65. package/Runtime/Resources/Sprites/TutorialModal/L Container.png.meta +0 -169
  66. package/Runtime/Resources/Sprites/TutorialModal/P Container.png +0 -0
  67. package/Runtime/Resources/Sprites/TutorialModal/Time_Seeker_Bar_Empty.png +0 -0
  68. package/Runtime/Resources/Sprites/TutorialModal/Time_Seeker_Bar_Empty.png.meta +0 -156
  69. package/Runtime/Resources/Sprites/TutorialModal/Time_Seeker_Bar_Filled.png +0 -0
  70. package/Runtime/Resources/Sprites/TutorialModal/Time_Seeker_Bar_Filled.png.meta +0 -156
  71. package/Runtime/Resources/Sprites/TutorialModal/Tutorial_Background_Landscape.png +0 -0
  72. package/Runtime/Resources/Sprites/TutorialModal/Tutorial_Background_Landscape.png.meta +0 -169
  73. package/Runtime/Resources/Sprites/TutorialModal/Tutorial_Background_Portrait.png +0 -0
  74. package/Runtime/Resources/Sprites/TutorialModal/Tutorial_Background_Portrait.png.meta +0 -169
  75. package/Runtime/Shared/HyperDemoLabel.cs +0 -14
  76. package/Runtime/Shared/HyperDemoLabel.cs.meta +0 -2
package/CHANGELOG.md CHANGED
@@ -1,43 +1,126 @@
1
- # [1.9.0-exhibition.5](https://github.com/mvmhyper/hyper-sdk/compare/v1.9.0-exhibition.4...v1.9.0-exhibition.5) (2026-05-26)
1
+ # [1.9.0](https://github.com/mvmhyper/hyper-sdk/compare/v1.8.26...v1.9.0) (2026-07-09)
2
+
3
+
4
+ ### Features
5
+
6
+ * tutorial UI update and availability announcement ([6ec7b2e](https://github.com/mvmhyper/hyper-sdk/commit/6ec7b2e5ca0af3af07cc22c6cf23fbd13655c2e6))
7
+
8
+ ## [1.8.26](https://github.com/mvmhyper/hyper-sdk/compare/v1.8.25...v1.8.26) (2026-07-09)
2
9
 
3
10
 
4
11
  ### Bug Fixes
5
12
 
6
- * sync exhibition SDK with Hyper CLI ([72214a6](https://github.com/mvmhyper/hyper-sdk/commit/72214a6a2da51b3bc9f3bcdf40915c265827ff63))
13
+ * address SDK publishing issues ([f00551a](https://github.com/mvmhyper/hyper-sdk/commit/f00551a681bf5e1011410677e220ca3c372648dd))
7
14
 
8
- # [1.9.0-exhibition.4](https://github.com/mvmhyper/hyper-sdk/compare/v1.9.0-exhibition.3...v1.9.0-exhibition.4) (2026-05-21)
15
+ ## [1.8.25](https://github.com/mvmhyper/hyper-sdk/compare/v1.8.24...v1.8.25) (2026-07-09)
9
16
 
10
17
 
11
18
  ### Bug Fixes
12
19
 
13
- * load Hyper Demo Label prefab dynamically from Resources ([f409c04](https://github.com/mvmhyper/hyper-sdk/commit/f409c045f71d7729b2a7384eba0ad900ec7ecc53))
20
+ * repair SDK publish workflow ([e718b78](https://github.com/mvmhyper/hyper-sdk/commit/e718b78b593abfacf49395e87e780ee0e7529b00))
14
21
 
15
- # [1.9.0-exhibition.3](https://github.com/mvmhyper/hyper-sdk/compare/v1.9.0-exhibition.2...v1.9.0-exhibition.3) (2026-05-21)
22
+ ## [1.8.24](https://github.com/mvmhyper/hyper-sdk/compare/v1.8.23...v1.8.24) (2026-07-09)
16
23
 
17
24
 
18
25
  ### Bug Fixes
19
26
 
20
- * add Hyper Demo Label prefab and assets ([2a686e0](https://github.com/mvmhyper/hyper-sdk/commit/2a686e05d5257eba52ad1d2fdab47972c105856b))
27
+ * simplify tutorial available modal ([5a2056d](https://github.com/mvmhyper/hyper-sdk/commit/5a2056d0cac32028e552b250fc76e2a961a04291))
28
+ * support tutorial announcement modal landscape ([db5e7d6](https://github.com/mvmhyper/hyper-sdk/commit/db5e7d639865fdf14ef74947ac0809b1e167f832))
21
29
 
22
- # [1.9.0-exhibition.2](https://github.com/mvmhyper/hyper-sdk/compare/v1.9.0-exhibition.1...v1.9.0-exhibition.2) (2026-05-01)
30
+ ## [1.8.23](https://github.com/mvmhyper/hyper-sdk/compare/v1.8.22...v1.8.23) (2026-07-08)
23
31
 
24
32
 
25
33
  ### Bug Fixes
26
34
 
27
- * sync UPM package contents with dev SDK updates ([16400be](https://github.com/mvmhyper/hyper-sdk/commit/16400bef4a2488bdabe9efbdd520ef444a478346))
35
+ * signal tutorial availability before cache completes ([7a8d043](https://github.com/mvmhyper/hyper-sdk/commit/7a8d043e016c36007b088535f06ae5f4bb4ae64d))
28
36
 
29
- # [1.9.0-exhibition.1](https://github.com/mvmhyper/hyper-sdk/compare/v1.8.10...v1.9.0-exhibition.1) (2026-05-01)
37
+ ## [1.8.22](https://github.com/mvmhyper/hyper-sdk/compare/v1.8.21...v1.8.22) (2026-07-08)
30
38
 
31
39
 
32
40
  ### Bug Fixes
33
41
 
34
- * add exhibition prerelease channel ([cf4fbaa](https://github.com/mvmhyper/hyper-sdk/commit/cf4fbaa69f83ca3cd6b4e9f1c518aa885df72cf8))
42
+ * add tutorial announcement prompt ([0b5e009](https://github.com/mvmhyper/hyper-sdk/commit/0b5e0099346d144b56d35a39d613e24a776ef11b))
35
43
 
44
+ ## [1.8.21](https://github.com/mvmhyper/hyper-sdk/compare/v1.8.20...v1.8.21) (2026-07-08)
36
45
 
37
- ### Features
38
46
 
39
- * **exhibition:** decouple battle/practice exhibition flow from backend submission ([ec44391](https://github.com/mvmhyper/hyper-sdk/commit/ec44391604146582c295c184e02c41550e859925))
40
- * **exhibition:** unify fixed countdown flow for battle and practice ([5a25dff](https://github.com/mvmhyper/hyper-sdk/commit/5a25dffbd1f07e6eb2f1d9e718fcdc040b247a3a))
47
+ ### Bug Fixes
48
+
49
+ * smooth tutorial loader and media switching ([b4cfbef](https://github.com/mvmhyper/hyper-sdk/commit/b4cfbef45d5544e7c5dfa37f702acb9f7be67548))
50
+
51
+ ## [1.8.20](https://github.com/mvmhyper/hyper-sdk/compare/v1.8.19...v1.8.20) (2026-07-07)
52
+
53
+
54
+ ### Bug Fixes
55
+
56
+ * **tutorial:** enhance display with rounded corners ([f240203](https://github.com/mvmhyper/hyper-sdk/commit/f240203d4ad14df7c6c481df1d656ea4bc356ad7))
57
+ * update tutorial modal content flow ([a6fb29b](https://github.com/mvmhyper/hyper-sdk/commit/a6fb29b092cd7902493031c87868df58a9775500))
58
+
59
+ ## [1.8.19](https://github.com/mvmhyper/hyper-sdk/compare/v1.8.18...v1.8.19) (2026-06-23)
60
+
61
+
62
+ ### Bug Fixes
63
+
64
+ * align footer button spacing in SDK pause modal across orientations ([f917e8c](https://github.com/mvmhyper/hyper-sdk/commit/f917e8cce6cd7234fc73bf401629df19cae2ed54))
65
+
66
+ ## [1.8.18](https://github.com/mvmhyper/hyper-sdk/compare/v1.8.17...v1.8.18) (2026-06-22)
67
+
68
+
69
+ ### Bug Fixes
70
+
71
+ * **sdk:** update pause modal exit CTA to submit & exit ([eaf7b46](https://github.com/mvmhyper/hyper-sdk/commit/eaf7b46290c176d61e881f3f45ac5537fb5db419))
72
+
73
+ ## [1.8.17](https://github.com/mvmhyper/hyper-sdk/compare/v1.8.16...v1.8.17) (2026-06-14)
74
+
75
+
76
+ ### Bug Fixes
77
+
78
+ * show ping UI in production ([bdbac8b](https://github.com/mvmhyper/hyper-sdk/commit/bdbac8b07aae39cb1142e4a90b93f0b1d2b97a08))
79
+
80
+ ## [1.8.16](https://github.com/mvmhyper/hyper-sdk/compare/v1.8.15...v1.8.16) (2026-06-11)
81
+
82
+
83
+ ### Bug Fixes
84
+
85
+ * **loader:** expose custom loading start hook ([acdec3a](https://github.com/mvmhyper/hyper-sdk/commit/acdec3a1c484a1b476690f3ac5ca8e38877915a6))
86
+ * **safe-area:** add ignore safe area component + upm sync ([9c1ea51](https://github.com/mvmhyper/hyper-sdk/commit/9c1ea5165c7b5bb4e97396ff0e7d375db52a1041))
87
+ * **ui:** improve HyperCanvas landscape layout ([2a3ba8c](https://github.com/mvmhyper/hyper-sdk/commit/2a3ba8c2fa753bc5ab13934c49ba0dee0571814d))
88
+
89
+ ## [1.8.15](https://github.com/mvmhyper/hyper-sdk/compare/v1.8.14...v1.8.15) (2026-06-04)
90
+
91
+
92
+ ### Bug Fixes
93
+
94
+ * derive SDK session timer from backend remaining time ([d1f79a8](https://github.com/mvmhyper/hyper-sdk/commit/d1f79a814c17828faf6590baf46c925dd7d47b80))
95
+
96
+ ## [1.8.14](https://github.com/mvmhyper/hyper-sdk/compare/v1.8.13...v1.8.14) (2026-05-14)
97
+
98
+
99
+ ### Bug Fixes
100
+
101
+ * harden Hyper build validation for CLI runs ([de27fe9](https://github.com/mvmhyper/hyper-sdk/commit/de27fe9ca09073e0214d404dee0f5c350b2c0af1))
102
+ * make Hyper build pipeline callable from CLI ([1f6545c](https://github.com/mvmhyper/hyper-sdk/commit/1f6545c1492c7a00cf94524ec72b5469acf46c7c))
103
+
104
+ ## [1.8.13](https://github.com/mvmhyper/hyper-sdk/compare/v1.8.12...v1.8.13) (2026-05-13)
105
+
106
+
107
+ ### Bug Fixes
108
+
109
+ * reset time scale when loading practice menu ([1db0bb4](https://github.com/mvmhyper/hyper-sdk/commit/1db0bb433700cb6b6be61586f4ea4e80df67265a))
110
+
111
+ ## [1.8.12](https://github.com/mvmhyper/hyper-sdk/compare/v1.8.11...v1.8.12) (2026-05-13)
112
+
113
+
114
+ ### Bug Fixes
115
+
116
+ * reduce default session timeout to 29 minutes for v1.8.12 ([5567770](https://github.com/mvmhyper/hyper-sdk/commit/5567770fbbecb7444cd3bfac446f3ea1b0454601))
117
+
118
+ ## [1.8.11](https://github.com/mvmhyper/hyper-sdk/compare/v1.8.10...v1.8.11) (2026-04-30)
119
+
120
+
121
+ ### Bug Fixes
122
+
123
+ * normalize score ordering and prevent duplicate final score delta ([ad47380](https://github.com/mvmhyper/hyper-sdk/commit/ad47380e7af6d3c6323a53732bc56d2c0fd545fa))
41
124
 
42
125
  ## [1.8.10](https://github.com/mvmhyper/hyper-sdk/compare/v1.8.9...v1.8.10) (2026-04-22)
43
126
 
@@ -102,6 +102,21 @@ namespace Hyper.Editor
102
102
  private const string PREFS_BUILD_ASSETS = "HyperSDK.LastBuildAssets";
103
103
  private const string PREFS_BUILD_OPTIMIZATIONS = "HyperSDK.LastBuildOptimizations";
104
104
 
105
+ private struct BuildSettingsSnapshot
106
+ {
107
+ public bool hasCodeOptimization;
108
+ public object codeOptimizationValue;
109
+
110
+ public bool hasDebugSymbolMode;
111
+ public object debugSymbolModeValue;
112
+
113
+ public bool hasExceptionSupport;
114
+ public WebGLExceptionSupport exceptionSupportValue;
115
+
116
+ public bool hasIl2CppCodeGeneration;
117
+ public Il2CppCodeGeneration il2CppCodeGenerationValue;
118
+ }
119
+
105
120
  #endregion
106
121
 
107
122
  #region Styles
@@ -1764,7 +1779,7 @@ namespace Hyper.Editor
1764
1779
  EditorUtility.DisplayDialog("Development Build Failed", result.Message, "OK");
1765
1780
  }
1766
1781
  }
1767
-
1782
+
1768
1783
  private static void BuildRelease()
1769
1784
  {
1770
1785
  if (EditorApplication.isCompiling)
@@ -2692,4 +2707,4 @@ namespace Hyper.Editor
2692
2707
  }
2693
2708
  }
2694
2709
 
2695
- #endif
2710
+ #endif
package/HyperLoader.unity CHANGED
@@ -304,7 +304,7 @@ RectTransform:
304
304
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
305
305
  m_AnchorMin: {x: 0, y: 1}
306
306
  m_AnchorMax: {x: 0, y: 1}
307
- m_AnchoredPosition: {x: 540, y: -280.1698}
307
+ m_AnchoredPosition: {x: 489.112, y: -280.1698}
308
308
  m_SizeDelta: {x: 1044.9, y: 239.347}
309
309
  m_Pivot: {x: 0.5, y: 0.5}
310
310
  --- !u!114 &751153944
@@ -840,7 +840,7 @@ GameObject:
840
840
  m_Component:
841
841
  - component: {fileID: 1064166296}
842
842
  m_Layer: 0
843
- m_Name: __HyperSDK_BuildMarker_639131393824174015
843
+ m_Name: __HyperSDK_BuildMarker_639190246458492972
844
844
  m_TagString: Untagged
845
845
  m_Icon: {fileID: 0}
846
846
  m_NavMeshLayer: 0
@@ -1092,7 +1092,7 @@ RectTransform:
1092
1092
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
1093
1093
  m_AnchorMin: {x: 0, y: 1}
1094
1094
  m_AnchorMax: {x: 0, y: 1}
1095
- m_AnchoredPosition: {x: 540, y: -133.2274}
1095
+ m_AnchoredPosition: {x: 489.112, y: -133.2274}
1096
1096
  m_SizeDelta: {x: 875, y: 54.5378}
1097
1097
  m_Pivot: {x: 0.5, y: 0.5}
1098
1098
  --- !u!1 &2874543288936963705
@@ -30,7 +30,6 @@ namespace Hyper.Internal
30
30
  #region Private Fields
31
31
 
32
32
  private Slider _loadingBarSlider;
33
- private HyperDemoLabel _demoLabel;
34
33
  private HyperGameContentConfig _gameContentConfig;
35
34
  private Coroutine _bootstrapCoroutine;
36
35
  private AspectRatioFitter _aspectRatioFitter;
@@ -58,7 +57,6 @@ namespace Hyper.Internal
58
57
 
59
58
  HyperRuntime.Clear();
60
59
 
61
- LoadDemoLabel();
62
60
  InitializeComponents();
63
61
  LoadConfiguration();
64
62
  SetupSplashScreen();
@@ -95,14 +93,6 @@ namespace Hyper.Internal
95
93
 
96
94
  _aspectRatioFitter = gamePoster?.GetComponent<AspectRatioFitter>();
97
95
  }
98
-
99
- private void LoadDemoLabel()
100
- {
101
- // Load demo label from resources (if exists) and set it on the UI
102
- var demoLabel = LoadResourceFromAssets<HyperDemoLabel>("Hyper Demo Label");
103
- var instantiatedDemoLabel = Instantiate(demoLabel, null);
104
- instantiatedDemoLabel.name = demoLabel.name.Trim();
105
- }
106
96
 
107
97
  private void LoadConfiguration()
108
98
  {
@@ -273,6 +263,9 @@ namespace Hyper.Internal
273
263
  _bootstrapProgress = _progressAfterInit;
274
264
  _loadingBarSlider.value = _bootstrapProgress;
275
265
 
266
+ // Start tutorial discovery early, but never wait for it before loading gameplay.
267
+ HyperRuntime.BackendManager.GetTutorial(null);
268
+
276
269
  // Step 2: Handle Backend/PVP or Practice mode initialization
277
270
  if (_gameManager.Config.IsBackendGame && _gameManager.Config.isPVP)
278
271
  {
@@ -338,7 +331,7 @@ namespace Hyper.Internal
338
331
  private void InitializeNonBackendBattle()
339
332
  {
340
333
  _targetSceneName = _gameContentConfig.GameScene?.SceneName;
341
- long seed = 520;
334
+ long seed = GetRandomSeed();
342
335
  _backendManager.RegisterSeed(seed);
343
336
  }
344
337
 
@@ -353,14 +346,12 @@ namespace Hyper.Internal
353
346
 
354
347
  private IEnumerator WaitForCustomPreLoading()
355
348
  {
356
- HyperRuntime.CustomLoadingComplete = false;
357
- HyperRuntime.CustomLoadingProgress = 0f;
358
-
359
349
  float simulatedProgress = 0f;
360
350
  const float simulatedSpeed = 0.15f;
361
351
  const float simulatedCap = 0.70f;
362
352
 
363
353
  HyperDebug.Log("Custom pre-loading enabled. Waiting for HyperSDK.Loader.CompleteCustomLoading()");
354
+ HyperRuntime.BeginCustomLoading();
364
355
 
365
356
  while (!HyperRuntime.CustomLoadingComplete)
366
357
  {
@@ -381,6 +372,7 @@ namespace Hyper.Internal
381
372
  // Snap to end of custom loading range
382
373
  _bootstrapProgress = _progressAfterCustomLoad;
383
374
  _loadingBarSlider.value = _bootstrapProgress;
375
+ HyperRuntime.EndCustomLoading();
384
376
  }
385
377
 
386
378
  private long GetRandomSeed()
@@ -486,4 +478,4 @@ namespace Hyper.Internal
486
478
 
487
479
  #endregion
488
480
  }
489
- }
481
+ }
@@ -20,7 +20,9 @@ namespace Hyper.Internal
20
20
  private static bool _isInitialized;
21
21
  private static bool _isSoftRestarting;
22
22
  private static bool _customLoadingComplete;
23
+ private static bool _customLoadingActive;
23
24
  private static float _customLoadingProgress;
25
+ private static Action _customLoadingStarted;
24
26
  private static HyperSDKSettings _settings;
25
27
  private static HyperGameContentConfig _gameContent;
26
28
  private static GameManager _gameManager;
@@ -40,6 +42,7 @@ namespace Hyper.Internal
40
42
  get => _customLoadingComplete;
41
43
  set => _customLoadingComplete = value;
42
44
  }
45
+ internal static bool CustomLoadingActive => _customLoadingActive;
43
46
  internal static float CustomLoadingProgress
44
47
  {
45
48
  get => _customLoadingProgress;
@@ -53,6 +56,31 @@ namespace Hyper.Internal
53
56
  internal static EventManager EventManager => _eventManager;
54
57
  internal static TimerManager Timer => _timerManager;
55
58
 
59
+ internal static event Action CustomLoadingStarted
60
+ {
61
+ add => _customLoadingStarted += value;
62
+ remove => _customLoadingStarted -= value;
63
+ }
64
+
65
+ internal static void BeginCustomLoading()
66
+ {
67
+ _customLoadingComplete = false;
68
+ _customLoadingProgress = 0f;
69
+ _customLoadingActive = true;
70
+ _customLoadingStarted?.Invoke();
71
+ }
72
+
73
+ internal static void CompleteCustomLoading()
74
+ {
75
+ _customLoadingComplete = true;
76
+ _customLoadingActive = false;
77
+ }
78
+
79
+ internal static void EndCustomLoading()
80
+ {
81
+ _customLoadingActive = false;
82
+ }
83
+
56
84
  /// <summary>
57
85
  /// Perform a full soft restart of the Hyper session.
58
86
  ///
@@ -309,6 +337,7 @@ namespace Hyper.Internal
309
337
  HyperRandom.Clear();
310
338
  _gameContent = null;
311
339
  _customLoadingComplete = false;
340
+ _customLoadingActive = false;
312
341
  _customLoadingProgress = 0f;
313
342
 
314
343
  if (_singletonObject != null)
@@ -359,6 +388,7 @@ namespace Hyper.Internal
359
388
  _gameContent = null;
360
389
  _isInitialized = false;
361
390
  _customLoadingComplete = false;
391
+ _customLoadingActive = false;
362
392
  _customLoadingProgress = 0f;
363
393
  }
364
394
  }