app.hypergames.hypersdk 1.11.0-beta.27 → 1.11.0-beta.29
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.29](https://github.com/mvmhyper/hyper-sdk/compare/v1.11.0-beta.28...v1.11.0-beta.29) (2026-09-08)
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
### Bug Fixes
|
|
5
|
+
|
|
6
|
+
* **replay:** simplify seek progress presentation ([16cf45a](https://github.com/mvmhyper/hyper-sdk/commit/16cf45afb3bf4fed8abc094ce2405237f0bf3b1d))
|
|
7
|
+
|
|
8
|
+
# [1.11.0-beta.28](https://github.com/mvmhyper/hyper-sdk/compare/v1.11.0-beta.27...v1.11.0-beta.28) (2026-09-08)
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Features
|
|
12
|
+
|
|
13
|
+
* update replay playback speed options ([fc5f653](https://github.com/mvmhyper/hyper-sdk/commit/fc5f65350b31425c53a131b7c44e8780e1b0ce2d))
|
|
14
|
+
|
|
1
15
|
# [1.11.0-beta.27](https://github.com/mvmhyper/hyper-sdk/compare/v1.11.0-beta.26...v1.11.0-beta.27) (2026-09-08)
|
|
2
16
|
|
|
3
17
|
|
|
@@ -19,7 +19,7 @@ namespace Hyper.Internal
|
|
|
19
19
|
[SerializeField] private Button pauseButton;
|
|
20
20
|
[SerializeField] private Button playbackSpeedButton;
|
|
21
21
|
[SerializeField] private TextMeshProUGUI playbackSpeedLabel;
|
|
22
|
-
[SerializeField] private float[] playbackSpeeds = { 1f, 1.
|
|
22
|
+
[SerializeField] private float[] playbackSpeeds = { 1f, 1.5f, 2f, 0.5f };
|
|
23
23
|
[SerializeField, Min(1f)] private float seekPlaybackSpeed = 15f;
|
|
24
24
|
[SerializeField, Min(0f)] private float readOnlyProgressSmoothTime = 0.08f;
|
|
25
25
|
[SerializeField, Range(0.25f, 1f)] private float seekSnapshotScale = 0.55f;
|
|
@@ -11,7 +11,7 @@ namespace Hyper.Internal
|
|
|
11
11
|
{
|
|
12
12
|
if (progressText == null) return;
|
|
13
13
|
|
|
14
|
-
int percentage = Mathf.
|
|
14
|
+
int percentage = Mathf.FloorToInt(Mathf.Clamp01(progress01) * 10f) * 10;
|
|
15
15
|
progressText.text = $"{percentage}%";
|
|
16
16
|
}
|
|
17
17
|
}
|
|
@@ -350,14 +350,12 @@ MonoBehaviour:
|
|
|
350
350
|
playbackSpeedLabel: {fileID: 4722203154507835557}
|
|
351
351
|
playbackSpeeds:
|
|
352
352
|
- 1
|
|
353
|
-
- 1.25
|
|
354
353
|
- 1.5
|
|
355
|
-
- 1.75
|
|
356
354
|
- 2
|
|
357
355
|
- 0.5
|
|
358
356
|
seekPlaybackSpeed: 15
|
|
359
357
|
readOnlyProgressSmoothTime: 0.08
|
|
360
|
-
seekSnapshotScale: 0.
|
|
358
|
+
seekSnapshotScale: 0.7
|
|
361
359
|
seekPreparationProgress: 0.2
|
|
362
360
|
seekPreparationProgressVariation: 0.05
|
|
363
361
|
seekPreparationDuration: 3
|
|
@@ -533,8 +531,8 @@ RectTransform:
|
|
|
533
531
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
534
532
|
m_AnchorMin: {x: 0, y: 1}
|
|
535
533
|
m_AnchorMax: {x: 1, y: 1}
|
|
536
|
-
m_AnchoredPosition: {x: 0, y:
|
|
537
|
-
m_SizeDelta: {x: 0, y:
|
|
534
|
+
m_AnchoredPosition: {x: 0, y: 3.8920975}
|
|
535
|
+
m_SizeDelta: {x: 0, y: 7.7843}
|
|
538
536
|
m_Pivot: {x: 0.5, y: 0.5}
|
|
539
537
|
--- !u!114 &6524620082287541530
|
|
540
538
|
MonoBehaviour:
|
|
@@ -546,8 +544,8 @@ MonoBehaviour:
|
|
|
546
544
|
m_Enabled: 1
|
|
547
545
|
m_EditorHideFlags: 0
|
|
548
546
|
m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3}
|
|
549
|
-
m_Name:
|
|
550
|
-
m_EditorClassIdentifier:
|
|
547
|
+
m_Name:
|
|
548
|
+
m_EditorClassIdentifier:
|
|
551
549
|
m_Navigation:
|
|
552
550
|
m_Mode: 3
|
|
553
551
|
m_WrapAround: 0
|
|
@@ -642,8 +640,8 @@ MonoBehaviour:
|
|
|
642
640
|
m_Enabled: 1
|
|
643
641
|
m_EditorHideFlags: 0
|
|
644
642
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
|
645
|
-
m_Name:
|
|
646
|
-
m_EditorClassIdentifier:
|
|
643
|
+
m_Name:
|
|
644
|
+
m_EditorClassIdentifier:
|
|
647
645
|
m_Material: {fileID: 0}
|
|
648
646
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
|
649
647
|
m_RaycastTarget: 1
|
|
@@ -723,10 +721,10 @@ MonoBehaviour:
|
|
|
723
721
|
m_Enabled: 1
|
|
724
722
|
m_EditorHideFlags: 0
|
|
725
723
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
|
726
|
-
m_Name:
|
|
727
|
-
m_EditorClassIdentifier:
|
|
724
|
+
m_Name:
|
|
725
|
+
m_EditorClassIdentifier:
|
|
728
726
|
m_Material: {fileID: 0}
|
|
729
|
-
m_Color: {r: 1, g: 1, b: 1, a:
|
|
727
|
+
m_Color: {r: 1, g: 1, b: 1, a: 0.8}
|
|
730
728
|
m_RaycastTarget: 1
|
|
731
729
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
|
732
730
|
m_Maskable: 1
|
|
@@ -806,7 +804,7 @@ RectTransform:
|
|
|
806
804
|
m_GameObject: {fileID: 3697401824850412108}
|
|
807
805
|
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
|
808
806
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
|
809
|
-
m_LocalScale: {x: 2, y: 2, z: 2}
|
|
807
|
+
m_LocalScale: {x: 2.25, y: 2.25, z: 2.25}
|
|
810
808
|
m_ConstrainProportionsScale: 1
|
|
811
809
|
m_Children: []
|
|
812
810
|
m_Father: {fileID: 2122678266869628181}
|
|
@@ -837,7 +835,7 @@ MonoBehaviour:
|
|
|
837
835
|
m_Name:
|
|
838
836
|
m_EditorClassIdentifier:
|
|
839
837
|
m_Material: {fileID: 0}
|
|
840
|
-
m_Color: {r: 0.
|
|
838
|
+
m_Color: {r: 0.990566, g: 0.990566, b: 0.990566, a: 1}
|
|
841
839
|
m_RaycastTarget: 1
|
|
842
840
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
|
843
841
|
m_Maskable: 1
|
|
@@ -1084,7 +1082,7 @@ MonoBehaviour:
|
|
|
1084
1082
|
m_Name:
|
|
1085
1083
|
m_EditorClassIdentifier:
|
|
1086
1084
|
m_Material: {fileID: 0}
|
|
1087
|
-
m_Color: {r: 0.09019608, g: 0.06666667, b: 0.15294118, a: 0.
|
|
1085
|
+
m_Color: {r: 0.09019608, g: 0.06666667, b: 0.15294118, a: 0.8}
|
|
1088
1086
|
m_RaycastTarget: 1
|
|
1089
1087
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
|
1090
1088
|
m_Maskable: 1
|
|
@@ -1285,8 +1283,8 @@ MonoBehaviour:
|
|
|
1285
1283
|
m_Enabled: 1
|
|
1286
1284
|
m_EditorHideFlags: 0
|
|
1287
1285
|
m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3}
|
|
1288
|
-
m_Name:
|
|
1289
|
-
m_EditorClassIdentifier:
|
|
1286
|
+
m_Name:
|
|
1287
|
+
m_EditorClassIdentifier:
|
|
1290
1288
|
m_Navigation:
|
|
1291
1289
|
m_Mode: 3
|
|
1292
1290
|
m_WrapAround: 0
|
|
@@ -1381,8 +1379,8 @@ MonoBehaviour:
|
|
|
1381
1379
|
m_Enabled: 1
|
|
1382
1380
|
m_EditorHideFlags: 0
|
|
1383
1381
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
|
1384
|
-
m_Name:
|
|
1385
|
-
m_EditorClassIdentifier:
|
|
1382
|
+
m_Name:
|
|
1383
|
+
m_EditorClassIdentifier:
|
|
1386
1384
|
m_Material: {fileID: 0}
|
|
1387
1385
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
|
1388
1386
|
m_RaycastTarget: 1
|
|
@@ -1528,10 +1526,10 @@ MonoBehaviour:
|
|
|
1528
1526
|
m_Enabled: 1
|
|
1529
1527
|
m_EditorHideFlags: 0
|
|
1530
1528
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
|
1531
|
-
m_Name:
|
|
1532
|
-
m_EditorClassIdentifier:
|
|
1529
|
+
m_Name:
|
|
1530
|
+
m_EditorClassIdentifier:
|
|
1533
1531
|
m_Material: {fileID: 0}
|
|
1534
|
-
m_Color: {r: 0.09019608, g: 0.06666667, b: 0.15294118, a: 0.
|
|
1532
|
+
m_Color: {r: 0.09019608, g: 0.06666667, b: 0.15294118, a: 0.8}
|
|
1535
1533
|
m_RaycastTarget: 1
|
|
1536
1534
|
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
|
1537
1535
|
m_Maskable: 1
|
|
@@ -13,10 +13,8 @@ deterministic spawning, a timed score multiplier, and replay integration.
|
|
|
13
13
|
Assign `LaneRunnerSample` as the Game and Practice scene in Hyper Game Content
|
|
14
14
|
Config, then use Hyper's Editor game-mode menu to run Practice, Battle, or Replay.
|
|
15
15
|
Battle sessions record to `hyper-replay.ndjson` in `Application.persistentDataPath`.
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
**Allow Replay Seeking** only after accelerated reconstruction is stable on
|
|
19
|
-
desktop and mobile WebGL.
|
|
16
|
+
Enable Custom Restart Flow in Hyper SDK Settings to test in-place Watch Again and
|
|
17
|
+
replay seeking without reloading the scene.
|
|
20
18
|
|
|
21
19
|
The sample uses only Unity's built-in `Default` layer, `Untagged`, and
|
|
22
20
|
`MainCamera`. Its collider overrides and ground safety do not require changes to
|
|
@@ -42,18 +40,3 @@ HyperSDK.Replay.OnAction += HandleReplayAction;
|
|
|
42
40
|
|
|
43
41
|
`RecordActivity` records only during active Battle gameplay. The SDK owns replay
|
|
44
42
|
timestamps, file loading, scheduling, pause handling, progress, and completion.
|
|
45
|
-
|
|
46
|
-
## Replay integration checklist
|
|
47
|
-
|
|
48
|
-
1. Read physical input in `Update`, queue commands, and consume them in
|
|
49
|
-
`FixedUpdate` with gameplay and physics.
|
|
50
|
-
2. Record only commands the game accepts, then route `HyperSDK.Replay.OnAction`
|
|
51
|
-
through the same command path.
|
|
52
|
-
3. Use `HyperRandom` for gameplay randomness and interpolate moving Rigidbodies
|
|
53
|
-
so fixed simulation still renders smoothly.
|
|
54
|
-
4. Verify the original replay and repeated Watch Again runs at every supported
|
|
55
|
-
speed on desktop and mobile WebGL.
|
|
56
|
-
5. Leave **Replay Custom Restart** disabled unless the game clears all gameplay
|
|
57
|
-
state, spawned objects, coroutines, pools, and cached references correctly.
|
|
58
|
-
6. Leave **Allow Replay Seeking** disabled for physics-heavy games unless their
|
|
59
|
-
accelerated reconstruction has been tested and remains deterministic.
|
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.29",
|
|
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",
|