app.hypergames.hypersdk 1.11.0-beta.13 → 1.11.0-beta.15

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,17 @@
1
+ # [1.11.0-beta.15](https://github.com/mvmhyper/hyper-sdk/compare/v1.11.0-beta.14...v1.11.0-beta.15) (2026-08-31)
2
+
3
+
4
+ ### Features
5
+
6
+ * **replay:** show seek completion progress ([4e7c1b8](https://github.com/mvmhyper/hyper-sdk/commit/4e7c1b807bd9f34b97477ef39aa9ca3c06316ef3))
7
+
8
+ # [1.11.0-beta.14](https://github.com/mvmhyper/hyper-sdk/compare/v1.11.0-beta.13...v1.11.0-beta.14) (2026-08-31)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * **replay:** keep seek loader animating ([7e13938](https://github.com/mvmhyper/hyper-sdk/commit/7e13938ce718a238506c08c30744ff24ed7fa710))
14
+
1
15
  # [1.11.0-beta.13](https://github.com/mvmhyper/hyper-sdk/compare/v1.11.0-beta.12...v1.11.0-beta.13) (2026-08-31)
2
16
 
3
17
 
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.112, y: -280.1698}
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.112, y: -133.2274}
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
@@ -32,6 +32,7 @@ namespace Hyper.Internal
32
32
  private Texture2D seekSnapshotTexture;
33
33
  private Image seekOverlayBackground;
34
34
  private Color seekOverlayBackgroundColor;
35
+ private ReplaySeekOverlay seekOverlay;
35
36
 
36
37
  private void Awake()
37
38
  {
@@ -79,6 +80,11 @@ namespace Hyper.Internal
79
80
  SetSeekingPresentation(isSeeking);
80
81
  }
81
82
 
83
+ if (isSeeking)
84
+ {
85
+ UpdateSeekProgress(true);
86
+ }
87
+
82
88
  if (progressSlider != null && (seekInput == null || !seekInput.IsDragging))
83
89
  {
84
90
  float displayedProgress = isCapturingSeek
@@ -260,6 +266,7 @@ namespace Hyper.Internal
260
266
  private void SetSeekingPresentation(bool isSeeking)
261
267
  {
262
268
  ReplayPresentationCanvas.SetSeekingLayer(isSeeking);
269
+ UpdateSeekProgress(isSeeking);
263
270
  if (seekLoadingOverlay != null) seekLoadingOverlay.SetActive(isSeeking);
264
271
  if (progressSlider != null) progressSlider.interactable = !isSeeking && !ReplaySessionState.HasEnded;
265
272
  if (playbackSpeedButton != null)
@@ -404,10 +411,31 @@ namespace Hyper.Internal
404
411
  seekLoadingOverlay.transform.SetAsFirstSibling();
405
412
  seekOverlayBackground = seekLoadingOverlay.GetComponent<Image>();
406
413
  if (seekOverlayBackground != null) seekOverlayBackgroundColor = seekOverlayBackground.color;
414
+ seekOverlay = seekLoadingOverlay.GetComponent<ReplaySeekOverlay>();
407
415
  seekLoadingOverlay.SetActive(ReplaySessionState.IsSeeking);
408
416
  wasSeeking = ReplaySessionState.IsSeeking;
409
417
  }
410
418
 
419
+ private void UpdateSeekProgress(bool isSeeking)
420
+ {
421
+ if (seekOverlay == null) return;
422
+
423
+ float progress = 0f;
424
+ if (!isSeeking)
425
+ {
426
+ progress = 1f;
427
+ }
428
+ else if (!isCapturingSeek && !ReplaySessionState.IsSeekRestartPending)
429
+ {
430
+ float target = ReplaySessionState.SeekTarget01;
431
+ progress = target <= Mathf.Epsilon
432
+ ? 1f
433
+ : ReplaySessionState.Progress01 / target;
434
+ }
435
+
436
+ seekOverlay.SetProgress(progress);
437
+ }
438
+
411
439
  private void ConfigureSeekSnapshot()
412
440
  {
413
441
  if (seekSnapshotImage == null)
@@ -0,0 +1,18 @@
1
+ using TMPro;
2
+ using UnityEngine;
3
+
4
+ namespace Hyper.Internal
5
+ {
6
+ internal sealed class ReplaySeekOverlay : MonoBehaviour
7
+ {
8
+ [SerializeField] private TextMeshProUGUI progressText;
9
+
10
+ internal void SetProgress(float progress01)
11
+ {
12
+ if (progressText == null) return;
13
+
14
+ int percentage = Mathf.RoundToInt(Mathf.Clamp01(progress01) * 100f);
15
+ progressText.text = $"{percentage}%";
16
+ }
17
+ }
18
+ }
@@ -0,0 +1,2 @@
1
+ fileFormatVersion: 2
2
+ guid: a7d0eb352f3c4d64a687b8c4509e1fa2