app.hypergames.hypersdk 1.11.0-beta.22 → 1.11.0-beta.23
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
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
# [1.11.0-beta.23](https://github.com/mvmhyper/hyper-sdk/compare/v1.11.0-beta.22...v1.11.0-beta.23) (2026-09-03)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* **replay:** smooth read-only progress display ([ead4579](https://github.com/mvmhyper/hyper-sdk/commit/ead45798883b24e4b4354f3aab22400a1399e212))
|
|
7
|
+
|
|
1
8
|
# [1.11.0-beta.22](https://github.com/mvmhyper/hyper-sdk/compare/v1.11.0-beta.21...v1.11.0-beta.22) (2026-09-03)
|
|
2
9
|
|
|
3
10
|
|
|
@@ -21,6 +21,7 @@ namespace Hyper.Internal
|
|
|
21
21
|
[SerializeField] private TextMeshProUGUI playbackSpeedLabel;
|
|
22
22
|
[SerializeField] private float[] playbackSpeeds = { 1f, 1.25f, 1.75f, 2f, 0.5f };
|
|
23
23
|
[SerializeField, Min(1f)] private float seekPlaybackSpeed = 10f;
|
|
24
|
+
[SerializeField, Min(0f)] private float readOnlyProgressSmoothTime = 0.08f;
|
|
24
25
|
[SerializeField, Range(0.25f, 1f)] private float seekSnapshotScale = 0.55f;
|
|
25
26
|
[SerializeField, Range(0f, 0.5f)] private float seekPreparationProgress = 0.2f;
|
|
26
27
|
[SerializeField, Range(0f, 0.15f)] private float seekPreparationProgressVariation = 0.05f;
|
|
@@ -35,6 +36,8 @@ namespace Hyper.Internal
|
|
|
35
36
|
private bool wasSeeking;
|
|
36
37
|
private bool isCapturingSeek;
|
|
37
38
|
private float pendingSeekTarget;
|
|
39
|
+
private float displayedReadOnlyProgress;
|
|
40
|
+
private float readOnlyProgressVelocity;
|
|
38
41
|
private Texture2D seekSnapshotTexture;
|
|
39
42
|
private Image seekOverlayBackground;
|
|
40
43
|
private Color seekOverlayBackgroundColor;
|
|
@@ -76,7 +79,7 @@ namespace Hyper.Internal
|
|
|
76
79
|
float displayedProgress = seekingAllowed && ReplaySessionState.IsSeeking
|
|
77
80
|
? ReplaySessionState.SeekTarget01
|
|
78
81
|
: ReplaySessionState.Progress01;
|
|
79
|
-
|
|
82
|
+
SetProgressSliderValue(displayedProgress);
|
|
80
83
|
}
|
|
81
84
|
UpdatePlaybackSpeedLabel(ReplaySessionState.UserPlaybackSpeed);
|
|
82
85
|
SetSeekingPresentation(seekingAllowed && ReplaySessionState.IsSeeking);
|
|
@@ -112,7 +115,7 @@ namespace Hyper.Internal
|
|
|
112
115
|
: isSeeking
|
|
113
116
|
? ReplaySessionState.SeekTarget01
|
|
114
117
|
: ReplaySessionState.Progress01;
|
|
115
|
-
|
|
118
|
+
SetProgressSliderValue(displayedProgress, !seekingAllowed);
|
|
116
119
|
}
|
|
117
120
|
|
|
118
121
|
wasSeeking = isSeeking;
|
|
@@ -155,7 +158,7 @@ namespace Hyper.Internal
|
|
|
155
158
|
if (progressSlider != null) progressSlider.interactable = false;
|
|
156
159
|
if (seekLoadingOverlay != null) seekLoadingOverlay.SetActive(false);
|
|
157
160
|
ClearSeekSnapshot();
|
|
158
|
-
|
|
161
|
+
SetProgressSliderValue(1f);
|
|
159
162
|
}
|
|
160
163
|
|
|
161
164
|
internal void ResetForReplayRestart()
|
|
@@ -174,10 +177,7 @@ namespace Hyper.Internal
|
|
|
174
177
|
: 0f;
|
|
175
178
|
wasSeeking = ReplaySessionState.IsSeeking;
|
|
176
179
|
|
|
177
|
-
|
|
178
|
-
{
|
|
179
|
-
progressSlider.SetValueWithoutNotify(pendingSeekTarget);
|
|
180
|
-
}
|
|
180
|
+
SetProgressSliderValue(pendingSeekTarget);
|
|
181
181
|
|
|
182
182
|
UpdatePlaybackSpeedLabel(playbackSpeed);
|
|
183
183
|
AlignPlaybackSpeedIndex(playbackSpeed);
|
|
@@ -412,7 +412,7 @@ namespace Hyper.Internal
|
|
|
412
412
|
float displayedProgress = seekingAllowed && ReplaySessionState.IsSeeking
|
|
413
413
|
? ReplaySessionState.SeekTarget01
|
|
414
414
|
: ReplaySessionState.Progress01;
|
|
415
|
-
|
|
415
|
+
SetProgressSliderValue(displayedProgress);
|
|
416
416
|
|
|
417
417
|
if (!seekingAllowed) return;
|
|
418
418
|
|
|
@@ -421,6 +421,37 @@ namespace Hyper.Internal
|
|
|
421
421
|
seekInput.Initialize(progressSlider, SeekTo);
|
|
422
422
|
}
|
|
423
423
|
|
|
424
|
+
private void SetProgressSliderValue(float targetProgress, bool smoothReadOnly = false)
|
|
425
|
+
{
|
|
426
|
+
if (progressSlider == null) return;
|
|
427
|
+
|
|
428
|
+
targetProgress = Mathf.Clamp01(targetProgress);
|
|
429
|
+
if (!smoothReadOnly || readOnlyProgressSmoothTime <= 0f ||
|
|
430
|
+
targetProgress < displayedReadOnlyProgress)
|
|
431
|
+
{
|
|
432
|
+
displayedReadOnlyProgress = targetProgress;
|
|
433
|
+
readOnlyProgressVelocity = 0f;
|
|
434
|
+
}
|
|
435
|
+
else
|
|
436
|
+
{
|
|
437
|
+
displayedReadOnlyProgress = Mathf.SmoothDamp(
|
|
438
|
+
displayedReadOnlyProgress,
|
|
439
|
+
targetProgress,
|
|
440
|
+
ref readOnlyProgressVelocity,
|
|
441
|
+
readOnlyProgressSmoothTime,
|
|
442
|
+
Mathf.Infinity,
|
|
443
|
+
Time.unscaledDeltaTime);
|
|
444
|
+
|
|
445
|
+
if (Mathf.Abs(targetProgress - displayedReadOnlyProgress) < 0.0001f)
|
|
446
|
+
{
|
|
447
|
+
displayedReadOnlyProgress = targetProgress;
|
|
448
|
+
readOnlyProgressVelocity = 0f;
|
|
449
|
+
}
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
progressSlider.SetValueWithoutNotify(displayedReadOnlyProgress);
|
|
453
|
+
}
|
|
454
|
+
|
|
424
455
|
private void ConfigureSeekOverlay()
|
|
425
456
|
{
|
|
426
457
|
if (seekLoadingOverlay == null)
|
|
@@ -14,7 +14,7 @@ namespace Hyper.Internal
|
|
|
14
14
|
[SerializeField] private BlinkingText blinkingText;
|
|
15
15
|
[SerializeField] private RectTransform swipeGif;
|
|
16
16
|
[SerializeField] private RectTransform handSpriteInGif;
|
|
17
|
-
[SerializeField] private float replayAutoStartDelay =
|
|
17
|
+
[SerializeField] private float replayAutoStartDelay = 2f;
|
|
18
18
|
private GameManager _gameManager;
|
|
19
19
|
private StartCTA _currentCTA;
|
|
20
20
|
private SwipeDirection _swipeDirection;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "app.hypergames.hypersdk",
|
|
3
|
-
"version": "1.11.0-beta.
|
|
3
|
+
"version": "1.11.0-beta.23",
|
|
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",
|