app.hypergames.hypersdk 1.5.7 → 1.5.8
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.
- package/CHANGELOG.md +7 -0
- package/HyperLoader.unity +2 -2
- package/Runtime/Internal/Managers/GameManager.cs +8 -10
- package/Runtime/Internal/Managers/TimeManager.cs +8 -4
- package/Runtime/Internal/UI/Animation/PopIn.cs +1 -3
- package/Runtime/Internal/UI/Components/HealthBarDisplay.cs +1 -2
- package/Runtime/Internal/UI/Modals/SessionTimedOutModal.cs +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
## [1.5.8](https://github.com/mvmhyper/hyper-sdk/compare/v1.5.7...v1.5.8) (2026-03-18)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* make SDK timers independent of game time scale and restore original timescale on resume ([b00e25d](https://github.com/mvmhyper/hyper-sdk/commit/b00e25dd145651ded83c55906137e8b79bc80e6b))
|
|
7
|
+
|
|
1
8
|
## [1.5.7](https://github.com/mvmhyper/hyper-sdk/compare/v1.5.6...v1.5.7) (2026-03-04)
|
|
2
9
|
|
|
3
10
|
|
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: 489.
|
|
307
|
+
m_AnchoredPosition: {x: 489.20746, 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
|
|
@@ -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: 489.
|
|
1095
|
+
m_AnchoredPosition: {x: 489.20746, 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
|
|
@@ -122,7 +122,6 @@ namespace Hyper.Internal.Managers
|
|
|
122
122
|
if (IsBattleMode) return;
|
|
123
123
|
|
|
124
124
|
_hasGameEnded = true;
|
|
125
|
-
Time.timeScale = 1;
|
|
126
125
|
HyperRuntime.Timer.StopAllTimers();
|
|
127
126
|
|
|
128
127
|
if (!HyperRuntime.GameContent.IsPracticeMenu)
|
|
@@ -160,6 +159,7 @@ namespace Hyper.Internal.Managers
|
|
|
160
159
|
|
|
161
160
|
_isPaused = true;
|
|
162
161
|
_isFrozenBeforePause = Time.timeScale == 0;
|
|
162
|
+
_savedTimeScaleBeforePause = Time.timeScale;
|
|
163
163
|
Time.timeScale = 0;
|
|
164
164
|
|
|
165
165
|
ShowPauseModal();
|
|
@@ -175,11 +175,11 @@ namespace Hyper.Internal.Managers
|
|
|
175
175
|
|
|
176
176
|
if (!_isFrozenBeforePause)
|
|
177
177
|
{
|
|
178
|
-
Time.timeScale =
|
|
178
|
+
Time.timeScale = _savedTimeScaleBeforePause;
|
|
179
179
|
}
|
|
180
180
|
_isFrozenBeforePause = false;
|
|
181
181
|
|
|
182
|
-
HyperRuntime.Timer.
|
|
182
|
+
HyperRuntime.Timer.ResumeGameTimersAfterPause(); // continue timers if any
|
|
183
183
|
|
|
184
184
|
HidePauseModals();
|
|
185
185
|
_eventManager.InvokeGameResumedEvent();
|
|
@@ -204,7 +204,7 @@ namespace Hyper.Internal.Managers
|
|
|
204
204
|
if (currentTimeScale != _previousTimeScale)
|
|
205
205
|
{
|
|
206
206
|
// detect intentional game-freeze states
|
|
207
|
-
if (currentTimeScale == 0f && _previousTimeScale
|
|
207
|
+
if (currentTimeScale == 0f && _previousTimeScale > 0f)
|
|
208
208
|
{
|
|
209
209
|
_eventManager.InvokeTimeScaleFrozenEvent();
|
|
210
210
|
HyperDebug.Log("Time scale frozen event invoked");
|
|
@@ -215,7 +215,7 @@ namespace Hyper.Internal.Managers
|
|
|
215
215
|
_backendManager.StopSendingScores();
|
|
216
216
|
}
|
|
217
217
|
}
|
|
218
|
-
else if (currentTimeScale
|
|
218
|
+
else if (currentTimeScale > 0f && _previousTimeScale == 0f)
|
|
219
219
|
{
|
|
220
220
|
_eventManager.InvokeTimeScaleResumedEvent();
|
|
221
221
|
HyperDebug.Log("Time scale resumed event invoked");
|
|
@@ -573,6 +573,7 @@ namespace Hyper.Internal.Managers
|
|
|
573
573
|
private bool _isFrozenBeforePause;
|
|
574
574
|
private bool _isPortrait;
|
|
575
575
|
private float _previousTimeScale = 1f;
|
|
576
|
+
private float _savedTimeScaleBeforePause = 1f;
|
|
576
577
|
|
|
577
578
|
#endregion
|
|
578
579
|
|
|
@@ -736,8 +737,8 @@ namespace Hyper.Internal.Managers
|
|
|
736
737
|
|
|
737
738
|
private void OnSceneLoaded(Scene newScene, LoadSceneMode loadSceneMode)
|
|
738
739
|
{
|
|
739
|
-
|
|
740
|
-
_previousTimeScale =
|
|
740
|
+
// Do not force a specific time scale; just sync tracking with the current value
|
|
741
|
+
_previousTimeScale = Time.timeScale;
|
|
741
742
|
_dataManager.ConfigurePlayerSoundSetting();
|
|
742
743
|
|
|
743
744
|
string menuSceneName = HyperRuntime.GameContent.IsPracticeMenu ?
|
|
@@ -841,8 +842,6 @@ namespace Hyper.Internal.Managers
|
|
|
841
842
|
|
|
842
843
|
ShowControlBarElements();
|
|
843
844
|
ShowStartingInstructionModal();
|
|
844
|
-
|
|
845
|
-
Time.timeScale = 1;
|
|
846
845
|
}
|
|
847
846
|
|
|
848
847
|
#endregion
|
|
@@ -852,7 +851,6 @@ namespace Hyper.Internal.Managers
|
|
|
852
851
|
private void EndGameInternal()
|
|
853
852
|
{
|
|
854
853
|
_hasGameEnded = true;
|
|
855
|
-
Time.timeScale = 1;
|
|
856
854
|
|
|
857
855
|
_eventManager.InvokeGameEndedEvent();
|
|
858
856
|
HyperRuntime.Timer.StopAllTimers();
|
|
@@ -78,10 +78,8 @@ namespace Hyper.Internal.Managers
|
|
|
78
78
|
float unscaledDelta = Time.unscaledTime - _lastUnscaledTime;
|
|
79
79
|
_lastUnscaledTime = Time.unscaledTime;
|
|
80
80
|
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
UpdatePracticeTimer(delta);
|
|
84
|
-
UpdateBattleTimer(delta);
|
|
81
|
+
UpdatePracticeTimer(unscaledDelta);
|
|
82
|
+
UpdateBattleTimer(unscaledDelta);
|
|
85
83
|
UpdateSessionTimer(unscaledDelta);
|
|
86
84
|
}
|
|
87
85
|
|
|
@@ -91,6 +89,12 @@ namespace Hyper.Internal.Managers
|
|
|
91
89
|
_lastUnscaledTime = Time.unscaledTime;
|
|
92
90
|
}
|
|
93
91
|
|
|
92
|
+
public void ResumeGameTimersAfterPause()
|
|
93
|
+
{
|
|
94
|
+
StartBattle();
|
|
95
|
+
StartPractice();
|
|
96
|
+
}
|
|
97
|
+
|
|
94
98
|
public void StartActiveGameTimer()
|
|
95
99
|
{
|
|
96
100
|
if (_gameManager.Config.GameMode == GameMode.Battle)
|
|
@@ -72,14 +72,12 @@ namespace Hyper.Internal
|
|
|
72
72
|
float elapsed = 0f;
|
|
73
73
|
while (elapsed < revealDuration)
|
|
74
74
|
{
|
|
75
|
-
// Compute the fraction of completion.
|
|
76
75
|
float t = elapsed / revealDuration;
|
|
77
|
-
// Lerp both x and y evenly with the same t value.
|
|
78
76
|
maskRect.sizeDelta = new Vector2(
|
|
79
77
|
Mathf.Lerp(startSize.x, endSize.x, t),
|
|
80
78
|
Mathf.Lerp(startSize.y, endSize.y, t)
|
|
81
79
|
);
|
|
82
|
-
elapsed += Time.
|
|
80
|
+
elapsed += Time.unscaledDeltaTime;
|
|
83
81
|
yield return null;
|
|
84
82
|
}
|
|
85
83
|
// Ensure the final state is exactly the target state.
|
|
@@ -219,7 +219,6 @@ namespace Hyper.Internal
|
|
|
219
219
|
yield break;
|
|
220
220
|
}
|
|
221
221
|
|
|
222
|
-
// Pulse alpha
|
|
223
222
|
float elapsed = 0f;
|
|
224
223
|
Color startColor = healthFillImage.color;
|
|
225
224
|
Color pulseColor = new Color(startColor.r, startColor.g, startColor.b, 0.5f);
|
|
@@ -227,7 +226,7 @@ namespace Hyper.Internal
|
|
|
227
226
|
while (elapsed < pulseDuration)
|
|
228
227
|
{
|
|
229
228
|
if (healthFillImage == null) yield break;
|
|
230
|
-
elapsed += Time.
|
|
229
|
+
elapsed += Time.unscaledDeltaTime;
|
|
231
230
|
float t = Mathf.PingPong(elapsed / pulseDuration, 1f);
|
|
232
231
|
Color currentColor = Color.Lerp(startColor, pulseColor, t);
|
|
233
232
|
healthFillImage.color = currentColor;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "app.hypergames.hypersdk",
|
|
3
|
-
"version": "1.5.
|
|
3
|
+
"version": "1.5.8",
|
|
4
4
|
"displayName": "HyperSDK",
|
|
5
5
|
"description": "Official Unity SDK for Hyper: multiplayer battles, leaderboards, deterministic RNG, session management, tutorials, and WebGL optimizations for production-ready games.",
|
|
6
6
|
"unity": "6000.0",
|