app.hypergames.hypersdk 1.11.0-beta.21 → 1.11.0-beta.22
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/Editor/Scripts/Inspectors/HyperSDKSettingsEditor.cs +10 -1
- package/Runtime/Internal/Managers/TimeManager.cs +16 -6
- package/Runtime/Internal/ScriptableObjects/HyperSDKSettings.cs +6 -0
- package/Runtime/Internal/UI/Components/ReplayController.cs +45 -17
- package/Runtime/Resources/HyperSDKSettings.asset +1 -0
- package/Runtime/Resources/UIPrefabs/ReplayController.prefab +287 -10
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,3 +1,10 @@
|
|
|
1
|
+
# [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
|
+
|
|
3
|
+
|
|
4
|
+
### Features
|
|
5
|
+
|
|
6
|
+
* **replay:** finalize playback controls and settings ([559a7e4](https://github.com/mvmhyper/hyper-sdk/commit/559a7e48d9998efa022fe87253645dc13f83e901))
|
|
7
|
+
|
|
1
8
|
# [1.11.0-beta.21](https://github.com/mvmhyper/hyper-sdk/compare/v1.11.0-beta.20...v1.11.0-beta.21) (2026-09-03)
|
|
2
9
|
|
|
3
10
|
|
|
@@ -172,11 +172,20 @@ namespace Hyper.Editor
|
|
|
172
172
|
settings.useCustomRestartFlow);
|
|
173
173
|
settings.useCustomReplayRestartFlow = EditorGUILayout.Toggle(
|
|
174
174
|
new GUIContent(
|
|
175
|
-
"
|
|
175
|
+
"Replay Custom Restart",
|
|
176
176
|
"Use game-owned restart logic for replay Watch Again and seeking. " +
|
|
177
177
|
"Disabled uses HyperLoader to rebuild deterministic game state."),
|
|
178
178
|
settings.useCustomReplayRestartFlow);
|
|
179
179
|
|
|
180
|
+
EditorGUILayout.Space(12);
|
|
181
|
+
EditorGUILayout.LabelField("Replay Settings", EditorStyles.boldLabel);
|
|
182
|
+
settings.allowReplaySeeking = EditorGUILayout.Toggle(
|
|
183
|
+
new GUIContent(
|
|
184
|
+
"Allow Replay Seeking",
|
|
185
|
+
"Allow viewers to seek using the replay progress bar. " +
|
|
186
|
+
"Leave disabled until accelerated replay reconstruction is validated for this game."),
|
|
187
|
+
settings.allowReplaySeeking);
|
|
188
|
+
|
|
180
189
|
EditorGUILayout.Space(12);
|
|
181
190
|
// Draw Editor Testing
|
|
182
191
|
SerializedProperty settingsProp = serializedObject.FindProperty("_settings");
|
|
@@ -103,14 +103,23 @@ namespace Hyper.Internal.Managers
|
|
|
103
103
|
if (Mathf.Approximately(Time.timeScale, 0f))
|
|
104
104
|
return;
|
|
105
105
|
|
|
106
|
-
float gameTimerDelta =
|
|
107
|
-
|
|
108
|
-
|
|
106
|
+
float gameTimerDelta = GetGameTimerDelta(
|
|
107
|
+
_gameManager != null && _gameManager.IsReplayMode,
|
|
108
|
+
Time.fixedDeltaTime,
|
|
109
|
+
Time.fixedUnscaledDeltaTime);
|
|
109
110
|
|
|
110
111
|
UpdatePracticeTimer(gameTimerDelta);
|
|
111
112
|
UpdateBattleTimer(gameTimerDelta);
|
|
112
113
|
}
|
|
113
114
|
|
|
115
|
+
internal static float GetGameTimerDelta(
|
|
116
|
+
bool isReplayMode,
|
|
117
|
+
float fixedDeltaTime,
|
|
118
|
+
float fixedUnscaledDeltaTime)
|
|
119
|
+
{
|
|
120
|
+
return isReplayMode ? fixedDeltaTime : fixedUnscaledDeltaTime;
|
|
121
|
+
}
|
|
122
|
+
|
|
114
123
|
public void Reset()
|
|
115
124
|
{
|
|
116
125
|
_practiceTimer = 0;
|
|
@@ -299,9 +308,9 @@ namespace Hyper.Internal.Managers
|
|
|
299
308
|
}
|
|
300
309
|
|
|
301
310
|
_battleTimer -= delta;
|
|
302
|
-
if (_battleTimer <=
|
|
311
|
+
if (_battleTimer <= 0f || Mathf.Approximately(_battleTimer, 0f))
|
|
303
312
|
{
|
|
304
|
-
_battleTimer =
|
|
313
|
+
_battleTimer = 0f;
|
|
305
314
|
if (!_timeUpTriggered)
|
|
306
315
|
{
|
|
307
316
|
QueueTimeUp();
|
|
@@ -314,7 +323,8 @@ namespace Hyper.Internal.Managers
|
|
|
314
323
|
{
|
|
315
324
|
_battleTimer = _sessionTimer;
|
|
316
325
|
|
|
317
|
-
if (_battleTimer <=
|
|
326
|
+
if ((_battleTimer <= 0f || Mathf.Approximately(_battleTimer, 0f)) &&
|
|
327
|
+
!_timeUpTriggered)
|
|
318
328
|
{
|
|
319
329
|
QueueTimeUp();
|
|
320
330
|
}
|
|
@@ -80,6 +80,12 @@ namespace Hyper.Internal
|
|
|
80
80
|
"Leave disabled to rebuild the game through HyperLoader for deterministic replay state.")]
|
|
81
81
|
public bool useCustomReplayRestartFlow = false;
|
|
82
82
|
|
|
83
|
+
[Space(20)]
|
|
84
|
+
[Header("Replay Settings")]
|
|
85
|
+
[Tooltip("Allow replay viewers to seek from the replay progress bar. " +
|
|
86
|
+
"Leave disabled until the game has been validated for accelerated replay reconstruction.")]
|
|
87
|
+
public bool allowReplaySeeking = false;
|
|
88
|
+
|
|
83
89
|
#endregion
|
|
84
90
|
|
|
85
91
|
#region Editor Testing
|
|
@@ -12,13 +12,14 @@ namespace Hyper.Internal
|
|
|
12
12
|
{
|
|
13
13
|
internal const int AvatarTextureSize = 128;
|
|
14
14
|
|
|
15
|
-
[SerializeField] private Slider
|
|
15
|
+
[SerializeField] private Slider seekableSlider;
|
|
16
|
+
[SerializeField] private Slider readOnlySlider;
|
|
16
17
|
[SerializeField] private TextMeshProUGUI replayLabel;
|
|
17
18
|
[SerializeField] private RawImage playerAvatar;
|
|
18
19
|
[SerializeField] private Button pauseButton;
|
|
19
20
|
[SerializeField] private Button playbackSpeedButton;
|
|
20
21
|
[SerializeField] private TextMeshProUGUI playbackSpeedLabel;
|
|
21
|
-
[SerializeField] private float[] playbackSpeeds = { 1.
|
|
22
|
+
[SerializeField] private float[] playbackSpeeds = { 1f, 1.25f, 1.75f, 2f, 0.5f };
|
|
22
23
|
[SerializeField, Min(1f)] private float seekPlaybackSpeed = 10f;
|
|
23
24
|
[SerializeField, Range(0.25f, 1f)] private float seekSnapshotScale = 0.55f;
|
|
24
25
|
[SerializeField, Range(0f, 0.5f)] private float seekPreparationProgress = 0.2f;
|
|
@@ -28,7 +29,9 @@ namespace Hyper.Internal
|
|
|
28
29
|
[SerializeField] private RawImage seekSnapshotImage;
|
|
29
30
|
|
|
30
31
|
private int playbackSpeedIndex;
|
|
32
|
+
private Slider progressSlider;
|
|
31
33
|
private ReplaySeekInput seekInput;
|
|
34
|
+
private bool seekingAllowed;
|
|
32
35
|
private bool wasSeeking;
|
|
33
36
|
private bool isCapturingSeek;
|
|
34
37
|
private float pendingSeekTarget;
|
|
@@ -44,12 +47,21 @@ namespace Hyper.Internal
|
|
|
44
47
|
|
|
45
48
|
private void Awake()
|
|
46
49
|
{
|
|
50
|
+
seekingAllowed = HyperRuntime.Settings != null && HyperRuntime.Settings.allowReplaySeeking;
|
|
47
51
|
AutoBindReferences();
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
52
|
+
ConfigureProgressSliders();
|
|
53
|
+
if (seekingAllowed)
|
|
54
|
+
{
|
|
55
|
+
ConfigureSeekOverlay();
|
|
56
|
+
ConfigureSeekSnapshot();
|
|
57
|
+
}
|
|
58
|
+
else if (seekLoadingOverlay != null)
|
|
59
|
+
{
|
|
60
|
+
seekLoadingOverlay.SetActive(false);
|
|
61
|
+
}
|
|
62
|
+
|
|
51
63
|
ApplyInitialPlaybackSpeed();
|
|
52
|
-
ReplaySessionState.SeekCompleted += RestorePlaybackAfterSeek;
|
|
64
|
+
if (seekingAllowed) ReplaySessionState.SeekCompleted += RestorePlaybackAfterSeek;
|
|
53
65
|
if (pauseButton != null) pauseButton.onClick.AddListener(PauseReplay);
|
|
54
66
|
if (playbackSpeedButton != null) playbackSpeedButton.onClick.AddListener(CyclePlaybackSpeed);
|
|
55
67
|
}
|
|
@@ -61,13 +73,13 @@ namespace Hyper.Internal
|
|
|
61
73
|
if (replayLabel != null) replayLabel.text = $"Replay of @{playerName}";
|
|
62
74
|
if (progressSlider != null)
|
|
63
75
|
{
|
|
64
|
-
float displayedProgress = ReplaySessionState.IsSeeking
|
|
76
|
+
float displayedProgress = seekingAllowed && ReplaySessionState.IsSeeking
|
|
65
77
|
? ReplaySessionState.SeekTarget01
|
|
66
78
|
: ReplaySessionState.Progress01;
|
|
67
79
|
progressSlider.SetValueWithoutNotify(displayedProgress);
|
|
68
80
|
}
|
|
69
81
|
UpdatePlaybackSpeedLabel(ReplaySessionState.UserPlaybackSpeed);
|
|
70
|
-
SetSeekingPresentation(ReplaySessionState.IsSeeking);
|
|
82
|
+
SetSeekingPresentation(seekingAllowed && ReplaySessionState.IsSeeking);
|
|
71
83
|
|
|
72
84
|
if (playerAvatar != null && ReplaySessionState.AvatarTexture != null)
|
|
73
85
|
{
|
|
@@ -77,7 +89,7 @@ namespace Hyper.Internal
|
|
|
77
89
|
|
|
78
90
|
private void Update()
|
|
79
91
|
{
|
|
80
|
-
bool isSeeking = ReplaySessionState.IsSeeking;
|
|
92
|
+
bool isSeeking = seekingAllowed && ReplaySessionState.IsSeeking;
|
|
81
93
|
if (wasSeeking && !isSeeking && !ReplaySessionState.HasEnded)
|
|
82
94
|
{
|
|
83
95
|
RestorePlaybackAfterSeek(ReplaySessionState.PlaybackSpeed);
|
|
@@ -195,7 +207,7 @@ namespace Hyper.Internal
|
|
|
195
207
|
|
|
196
208
|
private void SeekTo(float targetProgress)
|
|
197
209
|
{
|
|
198
|
-
if (!ReplaySessionState.IsActive || ReplaySessionState.HasEnded ||
|
|
210
|
+
if (!seekingAllowed || !ReplaySessionState.IsActive || ReplaySessionState.HasEnded ||
|
|
199
211
|
ReplaySessionState.IsSeeking || isCapturingSeek)
|
|
200
212
|
{
|
|
201
213
|
return;
|
|
@@ -273,10 +285,14 @@ namespace Hyper.Internal
|
|
|
273
285
|
|
|
274
286
|
private void SetSeekingPresentation(bool isSeeking)
|
|
275
287
|
{
|
|
288
|
+
isSeeking &= seekingAllowed;
|
|
276
289
|
ReplayPresentationCanvas.SetSeekingLayer(isSeeking);
|
|
277
290
|
UpdateSeekProgress(isSeeking);
|
|
278
291
|
if (seekLoadingOverlay != null) seekLoadingOverlay.SetActive(isSeeking);
|
|
279
|
-
if (progressSlider != null)
|
|
292
|
+
if (progressSlider != null)
|
|
293
|
+
{
|
|
294
|
+
progressSlider.interactable = seekingAllowed && !isSeeking && !ReplaySessionState.HasEnded;
|
|
295
|
+
}
|
|
280
296
|
if (playbackSpeedButton != null)
|
|
281
297
|
{
|
|
282
298
|
playbackSpeedButton.interactable = !isSeeking && !ReplaySessionState.HasEnded;
|
|
@@ -300,7 +316,7 @@ namespace Hyper.Internal
|
|
|
300
316
|
|
|
301
317
|
if (playbackSpeedLabel != null)
|
|
302
318
|
{
|
|
303
|
-
playbackSpeedLabel.text = $"{speed:0
|
|
319
|
+
playbackSpeedLabel.text = $"{speed:0.##}x";
|
|
304
320
|
}
|
|
305
321
|
}
|
|
306
322
|
|
|
@@ -354,8 +370,6 @@ namespace Hyper.Internal
|
|
|
354
370
|
|
|
355
371
|
private void AutoBindReferences()
|
|
356
372
|
{
|
|
357
|
-
if (progressSlider == null) progressSlider = GetComponentInChildren<Slider>(true);
|
|
358
|
-
|
|
359
373
|
Button[] buttons = GetComponentsInChildren<Button>(true);
|
|
360
374
|
for (int i = 0; i < buttons.Length; i++)
|
|
361
375
|
{
|
|
@@ -375,19 +389,33 @@ namespace Hyper.Internal
|
|
|
375
389
|
}
|
|
376
390
|
}
|
|
377
391
|
|
|
378
|
-
private void
|
|
392
|
+
private void ConfigureProgressSliders()
|
|
379
393
|
{
|
|
394
|
+
progressSlider = seekingAllowed ? seekableSlider : readOnlySlider;
|
|
395
|
+
|
|
396
|
+
if (seekableSlider != null)
|
|
397
|
+
{
|
|
398
|
+
seekableSlider.gameObject.SetActive(seekingAllowed);
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
if (readOnlySlider != null)
|
|
402
|
+
{
|
|
403
|
+
readOnlySlider.gameObject.SetActive(!seekingAllowed);
|
|
404
|
+
}
|
|
405
|
+
|
|
380
406
|
if (progressSlider == null) return;
|
|
381
407
|
|
|
382
408
|
progressSlider.minValue = 0f;
|
|
383
409
|
progressSlider.maxValue = 1f;
|
|
384
410
|
progressSlider.wholeNumbers = false;
|
|
385
|
-
progressSlider.interactable =
|
|
386
|
-
float displayedProgress = ReplaySessionState.IsSeeking
|
|
411
|
+
progressSlider.interactable = seekingAllowed;
|
|
412
|
+
float displayedProgress = seekingAllowed && ReplaySessionState.IsSeeking
|
|
387
413
|
? ReplaySessionState.SeekTarget01
|
|
388
414
|
: ReplaySessionState.Progress01;
|
|
389
415
|
progressSlider.SetValueWithoutNotify(displayedProgress);
|
|
390
416
|
|
|
417
|
+
if (!seekingAllowed) return;
|
|
418
|
+
|
|
391
419
|
seekInput = progressSlider.GetComponent<ReplaySeekInput>();
|
|
392
420
|
if (seekInput == null) seekInput = progressSlider.gameObject.AddComponent<ReplaySeekInput>();
|
|
393
421
|
seekInput.Initialize(progressSlider, SeekTo);
|
|
@@ -1,5 +1,41 @@
|
|
|
1
1
|
%YAML 1.1
|
|
2
2
|
%TAG !u! tag:unity3d.com,2011:
|
|
3
|
+
--- !u!1 &223417005362504300
|
|
4
|
+
GameObject:
|
|
5
|
+
m_ObjectHideFlags: 0
|
|
6
|
+
m_CorrespondingSourceObject: {fileID: 0}
|
|
7
|
+
m_PrefabInstance: {fileID: 0}
|
|
8
|
+
m_PrefabAsset: {fileID: 0}
|
|
9
|
+
serializedVersion: 6
|
|
10
|
+
m_Component:
|
|
11
|
+
- component: {fileID: 3833324095758096509}
|
|
12
|
+
m_Layer: 5
|
|
13
|
+
m_Name: Fill Area
|
|
14
|
+
m_TagString: Untagged
|
|
15
|
+
m_Icon: {fileID: 0}
|
|
16
|
+
m_NavMeshLayer: 0
|
|
17
|
+
m_StaticEditorFlags: 0
|
|
18
|
+
m_IsActive: 1
|
|
19
|
+
--- !u!224 &3833324095758096509
|
|
20
|
+
RectTransform:
|
|
21
|
+
m_ObjectHideFlags: 0
|
|
22
|
+
m_CorrespondingSourceObject: {fileID: 0}
|
|
23
|
+
m_PrefabInstance: {fileID: 0}
|
|
24
|
+
m_PrefabAsset: {fileID: 0}
|
|
25
|
+
m_GameObject: {fileID: 223417005362504300}
|
|
26
|
+
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
|
27
|
+
m_LocalPosition: {x: 0, y: 0, z: 0}
|
|
28
|
+
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
29
|
+
m_ConstrainProportionsScale: 0
|
|
30
|
+
m_Children:
|
|
31
|
+
- {fileID: 304532445594059503}
|
|
32
|
+
m_Father: {fileID: 6542150060122855028}
|
|
33
|
+
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
34
|
+
m_AnchorMin: {x: 0, y: 0}
|
|
35
|
+
m_AnchorMax: {x: 1, y: 1}
|
|
36
|
+
m_AnchoredPosition: {x: -0.018798828, y: 0.0000038146973}
|
|
37
|
+
m_SizeDelta: {x: -10.0378, y: -0.0001}
|
|
38
|
+
m_Pivot: {x: 0.5, y: 0.5}
|
|
3
39
|
--- !u!1 &369218185311093561
|
|
4
40
|
GameObject:
|
|
5
41
|
m_ObjectHideFlags: 0
|
|
@@ -305,7 +341,8 @@ MonoBehaviour:
|
|
|
305
341
|
m_Script: {fileID: 11500000, guid: 488ba0c343178684c9e74294492a1fa1, type: 3}
|
|
306
342
|
m_Name:
|
|
307
343
|
m_EditorClassIdentifier:
|
|
308
|
-
|
|
344
|
+
seekableSlider: {fileID: 6524620082287541530}
|
|
345
|
+
readOnlySlider: {fileID: 3931331649244694281}
|
|
309
346
|
replayLabel: {fileID: 2967308416171677859}
|
|
310
347
|
playerAvatar: {fileID: 1824686318740396960}
|
|
311
348
|
pauseButton: {fileID: 6062270276149820752}
|
|
@@ -313,9 +350,9 @@ MonoBehaviour:
|
|
|
313
350
|
playbackSpeedLabel: {fileID: 4722203154507835557}
|
|
314
351
|
playbackSpeeds:
|
|
315
352
|
- 1
|
|
316
|
-
- 1.
|
|
353
|
+
- 1.25
|
|
354
|
+
- 1.75
|
|
317
355
|
- 2
|
|
318
|
-
- 3
|
|
319
356
|
- 0.5
|
|
320
357
|
seekPlaybackSpeed: 10
|
|
321
358
|
seekSnapshotScale: 0.725
|
|
@@ -469,7 +506,7 @@ GameObject:
|
|
|
469
506
|
- component: {fileID: 6333756719587920619}
|
|
470
507
|
- component: {fileID: 6524620082287541530}
|
|
471
508
|
m_Layer: 5
|
|
472
|
-
m_Name:
|
|
509
|
+
m_Name: SeekableSlider
|
|
473
510
|
m_TagString: Untagged
|
|
474
511
|
m_Icon: {fileID: 0}
|
|
475
512
|
m_NavMeshLayer: 0
|
|
@@ -507,8 +544,8 @@ MonoBehaviour:
|
|
|
507
544
|
m_Enabled: 1
|
|
508
545
|
m_EditorHideFlags: 0
|
|
509
546
|
m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3}
|
|
510
|
-
m_Name:
|
|
511
|
-
m_EditorClassIdentifier:
|
|
547
|
+
m_Name:
|
|
548
|
+
m_EditorClassIdentifier:
|
|
512
549
|
m_Navigation:
|
|
513
550
|
m_Mode: 3
|
|
514
551
|
m_WrapAround: 0
|
|
@@ -603,8 +640,8 @@ MonoBehaviour:
|
|
|
603
640
|
m_Enabled: 1
|
|
604
641
|
m_EditorHideFlags: 0
|
|
605
642
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
|
606
|
-
m_Name:
|
|
607
|
-
m_EditorClassIdentifier:
|
|
643
|
+
m_Name:
|
|
644
|
+
m_EditorClassIdentifier:
|
|
608
645
|
m_Material: {fileID: 0}
|
|
609
646
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
|
610
647
|
m_RaycastTarget: 1
|
|
@@ -654,6 +691,7 @@ RectTransform:
|
|
|
654
691
|
m_ConstrainProportionsScale: 0
|
|
655
692
|
m_Children:
|
|
656
693
|
- {fileID: 6333756719587920619}
|
|
694
|
+
- {fileID: 6542150060122855028}
|
|
657
695
|
- {fileID: 6508244257815501699}
|
|
658
696
|
- {fileID: 1441186342797148716}
|
|
659
697
|
- {fileID: 3476774662796868632}
|
|
@@ -683,8 +721,8 @@ MonoBehaviour:
|
|
|
683
721
|
m_Enabled: 1
|
|
684
722
|
m_EditorHideFlags: 0
|
|
685
723
|
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
|
686
|
-
m_Name:
|
|
687
|
-
m_EditorClassIdentifier:
|
|
724
|
+
m_Name:
|
|
725
|
+
m_EditorClassIdentifier:
|
|
688
726
|
m_Material: {fileID: 0}
|
|
689
727
|
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
|
690
728
|
m_RaycastTarget: 1
|
|
@@ -1197,6 +1235,170 @@ MonoBehaviour:
|
|
|
1197
1235
|
m_hasFontAssetChanged: 0
|
|
1198
1236
|
m_baseMaterial: {fileID: 0}
|
|
1199
1237
|
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
|
|
1238
|
+
--- !u!1 &4462340644753344622
|
|
1239
|
+
GameObject:
|
|
1240
|
+
m_ObjectHideFlags: 0
|
|
1241
|
+
m_CorrespondingSourceObject: {fileID: 0}
|
|
1242
|
+
m_PrefabInstance: {fileID: 0}
|
|
1243
|
+
m_PrefabAsset: {fileID: 0}
|
|
1244
|
+
serializedVersion: 6
|
|
1245
|
+
m_Component:
|
|
1246
|
+
- component: {fileID: 6542150060122855028}
|
|
1247
|
+
- component: {fileID: 3931331649244694281}
|
|
1248
|
+
m_Layer: 5
|
|
1249
|
+
m_Name: ReadOnlySlider
|
|
1250
|
+
m_TagString: Untagged
|
|
1251
|
+
m_Icon: {fileID: 0}
|
|
1252
|
+
m_NavMeshLayer: 0
|
|
1253
|
+
m_StaticEditorFlags: 0
|
|
1254
|
+
m_IsActive: 0
|
|
1255
|
+
--- !u!224 &6542150060122855028
|
|
1256
|
+
RectTransform:
|
|
1257
|
+
m_ObjectHideFlags: 0
|
|
1258
|
+
m_CorrespondingSourceObject: {fileID: 0}
|
|
1259
|
+
m_PrefabInstance: {fileID: 0}
|
|
1260
|
+
m_PrefabAsset: {fileID: 0}
|
|
1261
|
+
m_GameObject: {fileID: 4462340644753344622}
|
|
1262
|
+
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
|
1263
|
+
m_LocalPosition: {x: 0, y: 0, z: 0}
|
|
1264
|
+
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
1265
|
+
m_ConstrainProportionsScale: 0
|
|
1266
|
+
m_Children:
|
|
1267
|
+
- {fileID: 366657233058180139}
|
|
1268
|
+
- {fileID: 3833324095758096509}
|
|
1269
|
+
m_Father: {fileID: 3329893502925930305}
|
|
1270
|
+
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
1271
|
+
m_AnchorMin: {x: 0, y: 1}
|
|
1272
|
+
m_AnchorMax: {x: 1, y: 1}
|
|
1273
|
+
m_AnchoredPosition: {x: 0, y: 3.8920975}
|
|
1274
|
+
m_SizeDelta: {x: 0, y: 7.7843}
|
|
1275
|
+
m_Pivot: {x: 0.5, y: 0.5}
|
|
1276
|
+
--- !u!114 &3931331649244694281
|
|
1277
|
+
MonoBehaviour:
|
|
1278
|
+
m_ObjectHideFlags: 0
|
|
1279
|
+
m_CorrespondingSourceObject: {fileID: 0}
|
|
1280
|
+
m_PrefabInstance: {fileID: 0}
|
|
1281
|
+
m_PrefabAsset: {fileID: 0}
|
|
1282
|
+
m_GameObject: {fileID: 4462340644753344622}
|
|
1283
|
+
m_Enabled: 1
|
|
1284
|
+
m_EditorHideFlags: 0
|
|
1285
|
+
m_Script: {fileID: 11500000, guid: 67db9e8f0e2ae9c40bc1e2b64352a6b4, type: 3}
|
|
1286
|
+
m_Name:
|
|
1287
|
+
m_EditorClassIdentifier:
|
|
1288
|
+
m_Navigation:
|
|
1289
|
+
m_Mode: 3
|
|
1290
|
+
m_WrapAround: 0
|
|
1291
|
+
m_SelectOnUp: {fileID: 0}
|
|
1292
|
+
m_SelectOnDown: {fileID: 0}
|
|
1293
|
+
m_SelectOnLeft: {fileID: 0}
|
|
1294
|
+
m_SelectOnRight: {fileID: 0}
|
|
1295
|
+
m_Transition: 0
|
|
1296
|
+
m_Colors:
|
|
1297
|
+
m_NormalColor: {r: 1, g: 1, b: 1, a: 1}
|
|
1298
|
+
m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
|
1299
|
+
m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1}
|
|
1300
|
+
m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1}
|
|
1301
|
+
m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608}
|
|
1302
|
+
m_ColorMultiplier: 1
|
|
1303
|
+
m_FadeDuration: 0.1
|
|
1304
|
+
m_SpriteState:
|
|
1305
|
+
m_HighlightedSprite: {fileID: 0}
|
|
1306
|
+
m_PressedSprite: {fileID: 0}
|
|
1307
|
+
m_SelectedSprite: {fileID: 0}
|
|
1308
|
+
m_DisabledSprite: {fileID: 0}
|
|
1309
|
+
m_AnimationTriggers:
|
|
1310
|
+
m_NormalTrigger: Normal
|
|
1311
|
+
m_HighlightedTrigger: Highlighted
|
|
1312
|
+
m_PressedTrigger: Pressed
|
|
1313
|
+
m_SelectedTrigger: Selected
|
|
1314
|
+
m_DisabledTrigger: Disabled
|
|
1315
|
+
m_Interactable: 0
|
|
1316
|
+
m_TargetGraphic: {fileID: 0}
|
|
1317
|
+
m_FillRect: {fileID: 304532445594059503}
|
|
1318
|
+
m_HandleRect: {fileID: 0}
|
|
1319
|
+
m_Direction: 0
|
|
1320
|
+
m_MinValue: 0
|
|
1321
|
+
m_MaxValue: 1
|
|
1322
|
+
m_WholeNumbers: 0
|
|
1323
|
+
m_Value: 0
|
|
1324
|
+
m_OnValueChanged:
|
|
1325
|
+
m_PersistentCalls:
|
|
1326
|
+
m_Calls: []
|
|
1327
|
+
--- !u!1 &4767236606928371908
|
|
1328
|
+
GameObject:
|
|
1329
|
+
m_ObjectHideFlags: 0
|
|
1330
|
+
m_CorrespondingSourceObject: {fileID: 0}
|
|
1331
|
+
m_PrefabInstance: {fileID: 0}
|
|
1332
|
+
m_PrefabAsset: {fileID: 0}
|
|
1333
|
+
serializedVersion: 6
|
|
1334
|
+
m_Component:
|
|
1335
|
+
- component: {fileID: 304532445594059503}
|
|
1336
|
+
- component: {fileID: 6168800224433124105}
|
|
1337
|
+
- component: {fileID: 1731641873342291599}
|
|
1338
|
+
m_Layer: 5
|
|
1339
|
+
m_Name: Fill
|
|
1340
|
+
m_TagString: Untagged
|
|
1341
|
+
m_Icon: {fileID: 0}
|
|
1342
|
+
m_NavMeshLayer: 0
|
|
1343
|
+
m_StaticEditorFlags: 0
|
|
1344
|
+
m_IsActive: 1
|
|
1345
|
+
--- !u!224 &304532445594059503
|
|
1346
|
+
RectTransform:
|
|
1347
|
+
m_ObjectHideFlags: 0
|
|
1348
|
+
m_CorrespondingSourceObject: {fileID: 0}
|
|
1349
|
+
m_PrefabInstance: {fileID: 0}
|
|
1350
|
+
m_PrefabAsset: {fileID: 0}
|
|
1351
|
+
m_GameObject: {fileID: 4767236606928371908}
|
|
1352
|
+
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
|
1353
|
+
m_LocalPosition: {x: 0, y: 0, z: 0}
|
|
1354
|
+
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
1355
|
+
m_ConstrainProportionsScale: 0
|
|
1356
|
+
m_Children: []
|
|
1357
|
+
m_Father: {fileID: 3833324095758096509}
|
|
1358
|
+
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
1359
|
+
m_AnchorMin: {x: 0, y: 0}
|
|
1360
|
+
m_AnchorMax: {x: 0, y: 1}
|
|
1361
|
+
m_AnchoredPosition: {x: 0, y: 0}
|
|
1362
|
+
m_SizeDelta: {x: 10, y: 0}
|
|
1363
|
+
m_Pivot: {x: 0.5, y: 0.5}
|
|
1364
|
+
--- !u!222 &6168800224433124105
|
|
1365
|
+
CanvasRenderer:
|
|
1366
|
+
m_ObjectHideFlags: 0
|
|
1367
|
+
m_CorrespondingSourceObject: {fileID: 0}
|
|
1368
|
+
m_PrefabInstance: {fileID: 0}
|
|
1369
|
+
m_PrefabAsset: {fileID: 0}
|
|
1370
|
+
m_GameObject: {fileID: 4767236606928371908}
|
|
1371
|
+
m_CullTransparentMesh: 1
|
|
1372
|
+
--- !u!114 &1731641873342291599
|
|
1373
|
+
MonoBehaviour:
|
|
1374
|
+
m_ObjectHideFlags: 0
|
|
1375
|
+
m_CorrespondingSourceObject: {fileID: 0}
|
|
1376
|
+
m_PrefabInstance: {fileID: 0}
|
|
1377
|
+
m_PrefabAsset: {fileID: 0}
|
|
1378
|
+
m_GameObject: {fileID: 4767236606928371908}
|
|
1379
|
+
m_Enabled: 1
|
|
1380
|
+
m_EditorHideFlags: 0
|
|
1381
|
+
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
|
1382
|
+
m_Name:
|
|
1383
|
+
m_EditorClassIdentifier:
|
|
1384
|
+
m_Material: {fileID: 0}
|
|
1385
|
+
m_Color: {r: 1, g: 1, b: 1, a: 1}
|
|
1386
|
+
m_RaycastTarget: 1
|
|
1387
|
+
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
|
1388
|
+
m_Maskable: 1
|
|
1389
|
+
m_OnCullStateChanged:
|
|
1390
|
+
m_PersistentCalls:
|
|
1391
|
+
m_Calls: []
|
|
1392
|
+
m_Sprite: {fileID: 0}
|
|
1393
|
+
m_Type: 1
|
|
1394
|
+
m_PreserveAspect: 0
|
|
1395
|
+
m_FillCenter: 1
|
|
1396
|
+
m_FillMethod: 4
|
|
1397
|
+
m_FillAmount: 1
|
|
1398
|
+
m_FillClockwise: 1
|
|
1399
|
+
m_FillOrigin: 0
|
|
1400
|
+
m_UseSpriteMesh: 0
|
|
1401
|
+
m_PixelsPerUnitMultiplier: 1
|
|
1200
1402
|
--- !u!1 &4812803750956349496
|
|
1201
1403
|
GameObject:
|
|
1202
1404
|
m_ObjectHideFlags: 0
|
|
@@ -1269,6 +1471,81 @@ MonoBehaviour:
|
|
|
1269
1471
|
y: 0
|
|
1270
1472
|
width: 1
|
|
1271
1473
|
height: 1
|
|
1474
|
+
--- !u!1 &5057041956718479770
|
|
1475
|
+
GameObject:
|
|
1476
|
+
m_ObjectHideFlags: 0
|
|
1477
|
+
m_CorrespondingSourceObject: {fileID: 0}
|
|
1478
|
+
m_PrefabInstance: {fileID: 0}
|
|
1479
|
+
m_PrefabAsset: {fileID: 0}
|
|
1480
|
+
serializedVersion: 6
|
|
1481
|
+
m_Component:
|
|
1482
|
+
- component: {fileID: 366657233058180139}
|
|
1483
|
+
- component: {fileID: 2710470428584502286}
|
|
1484
|
+
- component: {fileID: 5573806685945753042}
|
|
1485
|
+
m_Layer: 5
|
|
1486
|
+
m_Name: Background
|
|
1487
|
+
m_TagString: Untagged
|
|
1488
|
+
m_Icon: {fileID: 0}
|
|
1489
|
+
m_NavMeshLayer: 0
|
|
1490
|
+
m_StaticEditorFlags: 0
|
|
1491
|
+
m_IsActive: 1
|
|
1492
|
+
--- !u!224 &366657233058180139
|
|
1493
|
+
RectTransform:
|
|
1494
|
+
m_ObjectHideFlags: 0
|
|
1495
|
+
m_CorrespondingSourceObject: {fileID: 0}
|
|
1496
|
+
m_PrefabInstance: {fileID: 0}
|
|
1497
|
+
m_PrefabAsset: {fileID: 0}
|
|
1498
|
+
m_GameObject: {fileID: 5057041956718479770}
|
|
1499
|
+
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
|
|
1500
|
+
m_LocalPosition: {x: 0, y: 0, z: 0}
|
|
1501
|
+
m_LocalScale: {x: 1, y: 1, z: 1}
|
|
1502
|
+
m_ConstrainProportionsScale: 0
|
|
1503
|
+
m_Children: []
|
|
1504
|
+
m_Father: {fileID: 6542150060122855028}
|
|
1505
|
+
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
|
1506
|
+
m_AnchorMin: {x: 0, y: 0}
|
|
1507
|
+
m_AnchorMax: {x: 1, y: 1}
|
|
1508
|
+
m_AnchoredPosition: {x: 0, y: -0.000030517578}
|
|
1509
|
+
m_SizeDelta: {x: 0, y: -0.000038624}
|
|
1510
|
+
m_Pivot: {x: 0.5, y: 0.5}
|
|
1511
|
+
--- !u!222 &2710470428584502286
|
|
1512
|
+
CanvasRenderer:
|
|
1513
|
+
m_ObjectHideFlags: 0
|
|
1514
|
+
m_CorrespondingSourceObject: {fileID: 0}
|
|
1515
|
+
m_PrefabInstance: {fileID: 0}
|
|
1516
|
+
m_PrefabAsset: {fileID: 0}
|
|
1517
|
+
m_GameObject: {fileID: 5057041956718479770}
|
|
1518
|
+
m_CullTransparentMesh: 1
|
|
1519
|
+
--- !u!114 &5573806685945753042
|
|
1520
|
+
MonoBehaviour:
|
|
1521
|
+
m_ObjectHideFlags: 0
|
|
1522
|
+
m_CorrespondingSourceObject: {fileID: 0}
|
|
1523
|
+
m_PrefabInstance: {fileID: 0}
|
|
1524
|
+
m_PrefabAsset: {fileID: 0}
|
|
1525
|
+
m_GameObject: {fileID: 5057041956718479770}
|
|
1526
|
+
m_Enabled: 1
|
|
1527
|
+
m_EditorHideFlags: 0
|
|
1528
|
+
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
|
|
1529
|
+
m_Name:
|
|
1530
|
+
m_EditorClassIdentifier:
|
|
1531
|
+
m_Material: {fileID: 0}
|
|
1532
|
+
m_Color: {r: 0.09019608, g: 0.06666667, b: 0.15294118, a: 0.78431374}
|
|
1533
|
+
m_RaycastTarget: 1
|
|
1534
|
+
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
|
|
1535
|
+
m_Maskable: 1
|
|
1536
|
+
m_OnCullStateChanged:
|
|
1537
|
+
m_PersistentCalls:
|
|
1538
|
+
m_Calls: []
|
|
1539
|
+
m_Sprite: {fileID: 0}
|
|
1540
|
+
m_Type: 1
|
|
1541
|
+
m_PreserveAspect: 0
|
|
1542
|
+
m_FillCenter: 1
|
|
1543
|
+
m_FillMethod: 4
|
|
1544
|
+
m_FillAmount: 1
|
|
1545
|
+
m_FillClockwise: 1
|
|
1546
|
+
m_FillOrigin: 0
|
|
1547
|
+
m_UseSpriteMesh: 0
|
|
1548
|
+
m_PixelsPerUnitMultiplier: 1
|
|
1272
1549
|
--- !u!1 &8322051490674722239
|
|
1273
1550
|
GameObject:
|
|
1274
1551
|
m_ObjectHideFlags: 0
|
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.22",
|
|
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",
|