app.hypergames.hypersdk 1.8.12 → 1.9.0-exhibition.2

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,16 +1,22 @@
1
- ## [1.8.12](https://github.com/mvmhyper/hyper-sdk/compare/v1.8.11...v1.8.12) (2026-05-13)
1
+ # [1.9.0-exhibition.2](https://github.com/mvmhyper/hyper-sdk/compare/v1.9.0-exhibition.1...v1.9.0-exhibition.2) (2026-05-01)
2
2
 
3
3
 
4
4
  ### Bug Fixes
5
5
 
6
- * reduce default session timeout to 29 minutes for v1.8.12 ([5567770](https://github.com/mvmhyper/hyper-sdk/commit/5567770fbbecb7444cd3bfac446f3ea1b0454601))
6
+ * sync UPM package contents with dev SDK updates ([16400be](https://github.com/mvmhyper/hyper-sdk/commit/16400bef4a2488bdabe9efbdd520ef444a478346))
7
7
 
8
- ## [1.8.11](https://github.com/mvmhyper/hyper-sdk/compare/v1.8.10...v1.8.11) (2026-04-30)
8
+ # [1.9.0-exhibition.1](https://github.com/mvmhyper/hyper-sdk/compare/v1.8.10...v1.9.0-exhibition.1) (2026-05-01)
9
9
 
10
10
 
11
11
  ### Bug Fixes
12
12
 
13
- * normalize score ordering and prevent duplicate final score delta ([ad47380](https://github.com/mvmhyper/hyper-sdk/commit/ad47380e7af6d3c6323a53732bc56d2c0fd545fa))
13
+ * add exhibition prerelease channel ([cf4fbaa](https://github.com/mvmhyper/hyper-sdk/commit/cf4fbaa69f83ca3cd6b4e9f1c518aa885df72cf8))
14
+
15
+
16
+ ### Features
17
+
18
+ * **exhibition:** decouple battle/practice exhibition flow from backend submission ([ec44391](https://github.com/mvmhyper/hyper-sdk/commit/ec44391604146582c295c184e02c41550e859925))
19
+ * **exhibition:** unify fixed countdown flow for battle and practice ([5a25dff](https://github.com/mvmhyper/hyper-sdk/commit/5a25dffbd1f07e6eb2f1d9e718fcdc040b247a3a))
14
20
 
15
21
  ## [1.8.10](https://github.com/mvmhyper/hyper-sdk/compare/v1.8.9...v1.8.10) (2026-04-22)
16
22
 
package/HyperLoader.unity CHANGED
@@ -304,8 +304,8 @@ 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.20746, y: -280.1698}
308
- m_SizeDelta: {x: 1044.9, y: 239.347}
307
+ m_AnchoredPosition: {x: 489.45853, y: -280.1698}
308
+ m_SizeDelta: {x: 0, y: 239.347}
309
309
  m_Pivot: {x: 0.5, y: 0.5}
310
310
  --- !u!114 &751153944
311
311
  MonoBehaviour:
@@ -840,7 +840,7 @@ GameObject:
840
840
  m_Component:
841
841
  - component: {fileID: 1064166296}
842
842
  m_Layer: 0
843
- m_Name: __HyperSDK_BuildMarker_639142756136327602
843
+ m_Name: __HyperSDK_BuildMarker_639131393824174015
844
844
  m_TagString: Untagged
845
845
  m_Icon: {fileID: 0}
846
846
  m_NavMeshLayer: 0
@@ -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.20746, y: -133.2274}
1095
+ m_AnchoredPosition: {x: 489.45853, 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
@@ -328,7 +328,7 @@ namespace Hyper.Internal
328
328
  private void InitializeNonBackendBattle()
329
329
  {
330
330
  _targetSceneName = _gameContentConfig.GameScene?.SceneName;
331
- long seed = GetRandomSeed();
331
+ long seed = 520;
332
332
  _backendManager.RegisterSeed(seed);
333
333
  }
334
334
 
@@ -849,6 +849,13 @@ namespace Hyper.Internal.Managers
849
849
  return;
850
850
  }
851
851
 
852
+ if (_gameManager == null) _gameManager = HyperRuntime.GameManager;
853
+ if (_gameManager != null && !_gameManager.Config.IsBackendGame)
854
+ {
855
+ _finalScoreSubmissionCoroutine = StartCoroutine(FinalScoreSubmissionCoroutineDemo());
856
+ return;
857
+ }
858
+
852
859
  #if UNITY_WEBGL && !UNITY_EDITOR
853
860
  _finalScoreSubmissionCoroutine = StartCoroutine(FinalScoreSubmissionCoroutine());
854
861
  #else
@@ -928,6 +935,24 @@ namespace Hyper.Internal.Managers
928
935
  yield break;
929
936
  }
930
937
 
938
+ var finalScoreData = _dataManager?.CurrentScoreData;
939
+ finalScoreData.isFinal = true;
940
+
941
+ // For consistency with per-second and backlog submissions, always send
942
+ // the final score as an array of ScoreData.
943
+ var finalScoreList = new List<ScoreData>(1) { finalScoreData };
944
+ string rawScoreJson = JsonConvert.SerializeObject(finalScoreList);
945
+ var compressedScoreData = JsonCompressor.CompressJson(rawScoreJson);
946
+ string scoreJson = compressedScoreData.MinifiedJson;
947
+ string encryptedScoreData = EncryptScore(scoreJson);
948
+
949
+ if (string.IsNullOrEmpty(encryptedScoreData))
950
+ {
951
+ LastSubmissionError = SubmissionErrorType.EncryptionError;
952
+ HyperDebug.LogError("Encryption failed [ENCRYPTION_ERROR]");
953
+ yield break;
954
+ }
955
+
931
956
  // Reset gameResumed flag for this attempt
932
957
  _gameResumed = false;
933
958
 
@@ -1024,39 +1049,6 @@ namespace Hyper.Internal.Managers
1024
1049
  _finalScoreSubmitted = false;
1025
1050
  _isWaitingForFinalScoreResponse = true;
1026
1051
 
1027
- float currentScoreDataScoreTime = _dataManager.CurrentScoreData.cumulativeScore + _dataManager.CurrentScoreData.scoreSnapshot.scoreTime;
1028
- float lastCapturedScoreDataScoreTime = _lastSentBatch.Last().cumulativeScore + _lastSentBatch.Last().scoreSnapshot.scoreTime;
1029
- ScoreData finalScoreData;
1030
-
1031
- if (currentScoreDataScoreTime > lastCapturedScoreDataScoreTime)
1032
- {
1033
- finalScoreData = _dataManager.CurrentScoreData;
1034
- finalScoreData.isFinal = true;
1035
- }
1036
- else
1037
- {
1038
- finalScoreData = _lastSentBatch.Last();
1039
- finalScoreData.isFinal = true;
1040
- finalScoreData.timestampUtc = DateTimeOffset.UtcNow.ToUnixTimeSeconds().ToString();
1041
- finalScoreData.scoreSnapshot.scoreDelta = 0;
1042
- finalScoreData.scoreSnapshot.gameplayModifiers = new GameplayModifiers();
1043
- }
1044
-
1045
- // For consistency with per-second and backlog submissions, always send
1046
- // the final score as an array of ScoreData.
1047
- var finalScoreList = new List<ScoreData>(1) { finalScoreData };
1048
- string rawScoreJson = JsonConvert.SerializeObject(finalScoreList);
1049
- var compressedScoreData = JsonCompressor.CompressJson(rawScoreJson);
1050
- string scoreJson = compressedScoreData.MinifiedJson;
1051
- string encryptedScoreData = EncryptScore(scoreJson);
1052
-
1053
- if (string.IsNullOrEmpty(encryptedScoreData))
1054
- {
1055
- LastSubmissionError = SubmissionErrorType.EncryptionError;
1056
- HyperDebug.LogError("Encryption failed [ENCRYPTION_ERROR]");
1057
- yield break;
1058
- }
1059
-
1060
1052
  _lastSentBatch.Clear();
1061
1053
  if (finalScoreData != null)
1062
1054
  {
@@ -1159,7 +1151,7 @@ namespace Hyper.Internal.Managers
1159
1151
  var finalScoreData = _dataManager.CurrentScoreData;
1160
1152
  finalScoreData.isFinal = true;
1161
1153
 
1162
- yield return new WaitForSecondsRealtime(3f);
1154
+ yield return new WaitForSecondsRealtime(.5f);
1163
1155
 
1164
1156
  _gameManager.GameOverModalComponent.ScoreHasBeenSubmitted();
1165
1157
  StopWebSocket();
@@ -1661,6 +1653,10 @@ namespace Hyper.Internal.Managers
1661
1653
  }
1662
1654
 
1663
1655
  ConsoleEvent logEntry = new ConsoleEvent { name = eventName };
1656
+ if (eventType == ConsoleEventType.GameEnd || eventType == ConsoleEventType.PracticeGameEnd)
1657
+ {
1658
+ logEntry.score = _dataManager?.CurrentScore ?? 0;
1659
+ }
1664
1660
  string jsonLog = JsonUtility.ToJson(logEntry);
1665
1661
 
1666
1662
  #if UNITY_WEBGL && !UNITY_EDITOR
@@ -1668,6 +1664,7 @@ namespace Hyper.Internal.Managers
1668
1664
  #endif
1669
1665
 
1670
1666
  #if UNITY_EDITOR
1667
+ HyperDebug.Log($"[Event] {logEntry.name} {jsonLog}");
1671
1668
  if (stopGameOnLog) UnityEditor.EditorApplication.isPlaying = false;
1672
1669
  #endif
1673
1670
  }
@@ -66,7 +66,7 @@ namespace Hyper.Internal.Managers
66
66
 
67
67
  CurrentScoreData.cumulativeScore = CurrentScore;
68
68
  CurrentScoreData.timestampUtc = DateTimeOffset.UtcNow.ToUnixTimeSeconds().ToString();
69
- CurrentScoreData.isFinal = false;
69
+ CurrentScoreData.isFinal = true;
70
70
 
71
71
  var snapshot = CurrentScoreData.scoreSnapshot;
72
72
  snapshot.scoreTime = currentGameSecond;
@@ -454,6 +454,7 @@ namespace Hyper
454
454
  public class ConsoleEvent
455
455
  {
456
456
  public string name;
457
+ public int score;
457
458
  }
458
459
 
459
460
  #endregion
@@ -641,32 +641,17 @@ namespace Hyper.Internal.Managers
641
641
 
642
642
  private void SetGameModeAndPVP()
643
643
  {
644
- bool isPVP = QueryParamsData.TryGetValue("pvp", out string pvpValue) && pvpValue == "true";
644
+ bool isPVP = QueryParamsData.TryGetValue("pvp", out string legacyPvpValue) && string.Equals(legacyPvpValue, "true", StringComparison.OrdinalIgnoreCase);
645
645
  Config.GameMode = isPVP ? GameMode.Battle : GameMode.Practice;
646
646
 
647
- if (isPVP && QueryParamsData.TryGetValue("time", out string timeValue))
648
- {
649
- if (float.TryParse(timeValue, out float timeLimit))
650
- {
651
- Config.TimeLimit = timeLimit;
652
- }
653
- }
647
+ // Exhibition mode always uses a fixed 180-second gameplay timer.
648
+ Config.TimeLimit = 180f;
654
649
  }
655
650
 
656
651
  private void SetBackendGameStatus()
657
652
  {
658
- string[] requiredFields = { "tournamentId", "gameId", "entryId", "host", "embedUrl" };
659
- bool isBackendGame = requiredFields.All(field => QueryParamsData.ContainsKey(field));
660
- Config.IsBackendGame = isBackendGame;
661
-
662
- if (isBackendGame)
663
- {
664
- Config.TournamentId = QueryParamsData["tournamentId"];
665
- Config.GameId = QueryParamsData["gameId"];
666
- Config.EntryId = QueryParamsData["entryId"];
667
- Config.Host = QueryParamsData["host"];
668
- Config.EmbedUrl = QueryParamsData["embedUrl"];
669
- }
653
+ // Exhibition flow is fully local: no backend session creation/submission dependencies.
654
+ Config.IsBackendGame = false;
670
655
  }
671
656
 
672
657
  private void SetOptionalParameters()
@@ -791,8 +776,8 @@ namespace Hyper.Internal.Managers
791
776
  {
792
777
  if (Config.isPVP)
793
778
  {
794
- HyperRuntime.Timer.StartPreSessionTimer();
795
- HyperRuntime.Timer.StartFiveSecondCountdown();
779
+ // Exhibition battle flow keeps only the in-game battle timer.
780
+ // Pre-session/session timeout UX is intentionally disabled.
796
781
  }
797
782
  else
798
783
  {
@@ -1304,7 +1289,7 @@ namespace Hyper.Internal.Managers
1304
1289
 
1305
1290
  if (IsBattleMode)
1306
1291
  {
1307
- HyperRuntime.Timer.PauseGameplayTimers();
1292
+ HyperRuntime.Timer.StopAllTimers();
1308
1293
 
1309
1294
  if (isPortrait)
1310
1295
  {
@@ -1319,7 +1304,7 @@ namespace Hyper.Internal.Managers
1319
1304
  }
1320
1305
  else
1321
1306
  {
1322
- HyperRuntime.Timer.PauseGameplayTimers();
1307
+ HyperRuntime.Timer.StopAllTimers();
1323
1308
 
1324
1309
  if (isPortrait)
1325
1310
  {
@@ -1394,7 +1379,7 @@ namespace Hyper.Internal.Managers
1394
1379
  private void ShowTimeUpModalInternal()
1395
1380
  {
1396
1381
  _hasGameEnded = true;
1397
-
1382
+
1398
1383
  if (_timeUpModal == null)
1399
1384
  {
1400
1385
  EnsureTimeUpModal();
@@ -1408,16 +1393,9 @@ namespace Hyper.Internal.Managers
1408
1393
  private IEnumerator ShowTimeUpSequence()
1409
1394
  {
1410
1395
  yield return new WaitForSecondsRealtime(0.25f);
1411
- _isPaused = false;
1412
1396
  HidePauseModals();
1413
1397
  yield return new WaitForSecondsRealtime(0.25f);
1414
1398
  ShowTimeUpModalInternal();
1415
- if (!_isFrozenBeforePause)
1416
- {
1417
- Time.timeScale = _savedTimeScaleBeforePause;
1418
- }
1419
-
1420
- _isFrozenBeforePause = false;
1421
1399
  }
1422
1400
 
1423
1401
  private void EnsureTimeUpModal()
@@ -54,7 +54,7 @@ namespace Hyper.Internal.Managers
54
54
  _gameManager = HyperRuntime.GameManager;
55
55
  _eventManager = HyperRuntime.EventManager;
56
56
 
57
- _practiceTimer = 0;
57
+ _practiceTimer = _gameManager.Config.TimeLimit;
58
58
  _battleTimer = _gameManager.Config.TimeLimit;
59
59
  _lastUnscaledTime = Time.unscaledTime;
60
60
  _timeUpTriggered = false;
@@ -92,8 +92,9 @@ namespace Hyper.Internal.Managers
92
92
 
93
93
  public void Reset()
94
94
  {
95
- _practiceTimer = 0;
95
+ _practiceTimer = _gameManager.Config.TimeLimit;
96
96
  _lastUnscaledTime = Time.unscaledTime;
97
+ _timeUpTriggered = false;
97
98
  }
98
99
 
99
100
  public void ResumeGameTimersAfterPause()
@@ -112,7 +113,10 @@ namespace Hyper.Internal.Managers
112
113
  {
113
114
  if (_gameManager.Config.GameMode == GameMode.Battle)
114
115
  {
115
- StartSessionTimer();
116
+ if (_gameManager.Config.IsBackendGame)
117
+ {
118
+ StartSessionTimer();
119
+ }
116
120
  StartBattle();
117
121
  }
118
122
  else
@@ -130,16 +134,6 @@ namespace Hyper.Internal.Managers
130
134
  StopPractice();
131
135
  }
132
136
 
133
- /// <summary>
134
- /// Pause menu: freeze match/practice clocks without marking the match ended,
135
- /// so session time can continue and cap the effective battle clock while paused.
136
- /// </summary>
137
- public void PauseGameplayTimers()
138
- {
139
- StopBattle();
140
- StopPractice();
141
- }
142
-
143
137
  public void StartPreSessionTimer()
144
138
  {
145
139
  StartSessionTimer(true);
@@ -206,7 +200,16 @@ namespace Hyper.Internal.Managers
206
200
  {
207
201
  if (_isPracticeRunning)
208
202
  {
209
- _practiceTimer += delta;
203
+ _practiceTimer -= delta;
204
+ if (_practiceTimer <= 0)
205
+ {
206
+ _practiceTimer = 0;
207
+ if (!_timeUpTriggered)
208
+ {
209
+ _timeUpTriggered = true;
210
+ _eventManager?.InvokeTimeUpEvent();
211
+ }
212
+ }
210
213
  }
211
214
  }
212
215
 
@@ -214,14 +217,6 @@ namespace Hyper.Internal.Managers
214
217
  {
215
218
  if (_isBattleRunning)
216
219
  {
217
- if (_gameManager.Config.GameMode == GameMode.Battle &&
218
- _hasGameStarted &&
219
- _isPreSessionRunning &&
220
- _sessionTimer <= _battleTimer)
221
- {
222
- _battleTimer = _sessionTimer;
223
- }
224
-
225
220
  _battleTimer -= delta;
226
221
  if (_battleTimer <= 0)
227
222
  {
@@ -277,20 +272,7 @@ namespace Hyper.Internal.Managers
277
272
  _sessionTimer = 0;
278
273
  _isSessionRunning = false;
279
274
  _isPreSessionRunning = false;
280
-
281
- if (_hasGameStarted && _gameManager.Config.GameMode == GameMode.Battle)
282
- {
283
- _battleTimer = 0;
284
- if (!_timeUpTriggered)
285
- {
286
- _timeUpTriggered = true;
287
- _eventManager?.InvokeTimeUpEvent();
288
- }
289
- }
290
- else
291
- {
292
- _eventManager?.InvokeSessionTimeOutEvent();
293
- }
275
+ _eventManager?.InvokeSessionTimeOutEvent();
294
276
  }
295
277
  }
296
278
 
@@ -121,16 +121,11 @@ namespace Hyper.Internal
121
121
  IEnumerator SetLoadingBarComplete()
122
122
  {
123
123
  float targetValue = 1f;
124
- float duration = 3f;
124
+ float duration = 1.5f;
125
125
 
126
- #if UNITY_WEBGL && !UNITY_EDITOR
127
- ExitBattleGame();
128
- #endif
129
126
  yield return LerpSlider(targetValue, duration);
130
127
 
131
- #if UNITY_EDITOR
132
128
  ExitBattleGame();
133
- #endif
134
129
  }
135
130
 
136
131
  void ExitBattleGame()
@@ -43,10 +43,10 @@ namespace Hyper.Internal
43
43
  soundText.text = _dataManager.GetSound() == 1 ? "Sound On" : "Sound Off";
44
44
  soundIcon.sprite = _dataManager.GetSound() == 1 ? soundIconOn : soundIconOff;
45
45
 
46
- if (timerText != null && timerText.transform.parent != null)
47
- {
48
- timerText.transform.parent.gameObject.SetActive(IsPVPMode);
49
- }
46
+ // if (timerText != null && timerText.transform.parent != null)
47
+ // {
48
+ // timerText.transform.parent.gameObject.SetActive(IsPVPMode);
49
+ // }
50
50
 
51
51
  if (restartButton != null) restartButton.SetActive(!HyperRuntime.GameContent.IsPracticeMenu);
52
52
 
@@ -80,14 +80,14 @@ namespace Hyper.Internal
80
80
  }
81
81
  }
82
82
 
83
- private void Update()
84
- {
85
- if (IsPVPMode && !hasGameSessionEnded)
86
- {
87
- int sessionTimeRemaining = HyperRuntime.Timer.SessionTimeRemaining;
88
- timerText.text = $"Session ends in {HyperRuntime.Timer.FormatMS(sessionTimeRemaining)}";
89
- }
90
- }
83
+ // private void Update()
84
+ // {
85
+ // if (IsPVPMode && !hasGameSessionEnded)
86
+ // {
87
+ // int sessionTimeRemaining = HyperRuntime.Timer.SessionTimeRemaining;
88
+ // timerText.text = $"Session ends in {HyperRuntime.Timer.FormatMS(sessionTimeRemaining)}";
89
+ // }
90
+ // }
91
91
 
92
92
  public void ResumeGame()
93
93
  {
@@ -13,7 +13,7 @@ namespace Hyper.Internal
13
13
 
14
14
  #region Timer Configuration
15
15
 
16
- public const float SESSION_DURATION = 1740f; // 29 minutes (1740 seconds)
16
+ public const float SESSION_DURATION = 1800f; // 30 minutes
17
17
 
18
18
  #endregion
19
19
 
@@ -1660,7 +1660,7 @@ GameObject:
1660
1660
  m_Icon: {fileID: 0}
1661
1661
  m_NavMeshLayer: 0
1662
1662
  m_StaticEditorFlags: 0
1663
- m_IsActive: 1
1663
+ m_IsActive: 0
1664
1664
  --- !u!224 &5674028873514353123
1665
1665
  RectTransform:
1666
1666
  m_ObjectHideFlags: 0
@@ -449,9 +449,9 @@ RectTransform:
449
449
  m_Children: []
450
450
  m_Father: {fileID: 2064026284783444202}
451
451
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
452
- m_AnchorMin: {x: 0, y: 0}
453
- m_AnchorMax: {x: 0, y: 0}
454
- m_AnchoredPosition: {x: 0, y: 0}
452
+ m_AnchorMin: {x: 0, y: 1}
453
+ m_AnchorMax: {x: 0, y: 1}
454
+ m_AnchoredPosition: {x: 35.3424, y: -33.43245}
455
455
  m_SizeDelta: {x: 40.6848, y: 40.6848}
456
456
  m_Pivot: {x: 0.5, y: 0.5}
457
457
  --- !u!222 &5521403755664493158
@@ -682,7 +682,7 @@ GameObject:
682
682
  m_Icon: {fileID: 0}
683
683
  m_NavMeshLayer: 0
684
684
  m_StaticEditorFlags: 2147483647
685
- m_IsActive: 1
685
+ m_IsActive: 0
686
686
  --- !u!224 &2064026284783444202
687
687
  RectTransform:
688
688
  m_ObjectHideFlags: 0
@@ -702,7 +702,7 @@ RectTransform:
702
702
  m_AnchorMin: {x: 0, y: 1}
703
703
  m_AnchorMax: {x: 0, y: 1}
704
704
  m_AnchoredPosition: {x: 354.4576, y: -195.97015}
705
- m_SizeDelta: {x: 0, y: 66.8649}
705
+ m_SizeDelta: {x: 428.38483, y: 66.8649}
706
706
  m_Pivot: {x: 0.5, y: 0.5}
707
707
  --- !u!222 &3679583245370806303
708
708
  CanvasRenderer:
@@ -1526,7 +1526,7 @@ RectTransform:
1526
1526
  m_AnchorMin: {x: 0, y: 1}
1527
1527
  m_AnchorMax: {x: 0, y: 1}
1528
1528
  m_AnchoredPosition: {x: 242.0348, y: -33.43245}
1529
- m_SizeDelta: {x: 0, y: 46.0515}
1529
+ m_SizeDelta: {x: 342.7, y: 46.0515}
1530
1530
  m_Pivot: {x: 0.5, y: 0.5}
1531
1531
  --- !u!222 &8480469813127575513
1532
1532
  CanvasRenderer:
@@ -256,7 +256,7 @@ PrefabInstance:
256
256
  objectReference: {fileID: 0}
257
257
  - target: {fileID: 2064026284783444202, guid: a339c1d0d1ed34649bc790f13508f5c1, type: 3}
258
258
  propertyPath: m_SizeDelta.x
259
- value: 0
259
+ value: 428.38483
260
260
  objectReference: {fileID: 0}
261
261
  - target: {fileID: 2064026284783444202, guid: a339c1d0d1ed34649bc790f13508f5c1, type: 3}
262
262
  propertyPath: m_AnchoredPosition.x
@@ -276,7 +276,7 @@ PrefabInstance:
276
276
  objectReference: {fileID: 21300000, guid: ef351537d82b6da4c99c78245bb3bbe5, type: 3}
277
277
  - target: {fileID: 2859363071509850053, guid: a339c1d0d1ed34649bc790f13508f5c1, type: 3}
278
278
  propertyPath: m_IsActive
279
- value: 1
279
+ value: 0
280
280
  objectReference: {fileID: 0}
281
281
  - target: {fileID: 3202174679696890696, guid: a339c1d0d1ed34649bc790f13508f5c1, type: 3}
282
282
  propertyPath: m_AnchorMax.y
@@ -448,19 +448,19 @@ PrefabInstance:
448
448
  objectReference: {fileID: 0}
449
449
  - target: {fileID: 6553601190230657892, guid: a339c1d0d1ed34649bc790f13508f5c1, type: 3}
450
450
  propertyPath: m_AnchorMax.y
451
- value: 0
451
+ value: 1
452
452
  objectReference: {fileID: 0}
453
453
  - target: {fileID: 6553601190230657892, guid: a339c1d0d1ed34649bc790f13508f5c1, type: 3}
454
454
  propertyPath: m_AnchorMin.y
455
- value: 0
455
+ value: 1
456
456
  objectReference: {fileID: 0}
457
457
  - target: {fileID: 6553601190230657892, guid: a339c1d0d1ed34649bc790f13508f5c1, type: 3}
458
458
  propertyPath: m_AnchoredPosition.x
459
- value: 0
459
+ value: 35.3424
460
460
  objectReference: {fileID: 0}
461
461
  - target: {fileID: 6553601190230657892, guid: a339c1d0d1ed34649bc790f13508f5c1, type: 3}
462
462
  propertyPath: m_AnchoredPosition.y
463
- value: 0
463
+ value: -33.43245
464
464
  objectReference: {fileID: 0}
465
465
  - target: {fileID: 6891580327800021480, guid: a339c1d0d1ed34649bc790f13508f5c1, type: 3}
466
466
  propertyPath: m_IsActive
@@ -416,7 +416,7 @@ RectTransform:
416
416
  m_AnchorMin: {x: 0, y: 1}
417
417
  m_AnchorMax: {x: 0, y: 1}
418
418
  m_AnchoredPosition: {x: 239.4, y: -41.121}
419
- m_SizeDelta: {x: 0, y: 46.0515}
419
+ m_SizeDelta: {x: 310.78, y: 46.0515}
420
420
  m_Pivot: {x: 0.5, y: 0.5}
421
421
  --- !u!222 &9221721025798811723
422
422
  CanvasRenderer:
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "app.hypergames.hypersdk",
3
- "version": "1.8.12",
3
+ "version": "1.9.0-exhibition.2",
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",