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 +10 -4
- package/HyperLoader.unity +4 -4
- package/Runtime/Internal/Bootstrap/HyperLoader.cs +1 -1
- package/Runtime/Internal/Managers/BackendManager.cs +31 -34
- package/Runtime/Internal/Managers/DataManager.cs +2 -1
- package/Runtime/Internal/Managers/GameManager.cs +10 -32
- package/Runtime/Internal/Managers/TimeManager.cs +18 -36
- package/Runtime/Internal/UI/Modals/GameOverModal.cs +1 -6
- package/Runtime/Internal/UI/Modals/GamePausedModal.cs +12 -12
- package/Runtime/Internal/Utils/HyperConstants.cs +1 -1
- package/Runtime/Resources/UIPrefabs/ControlBar.prefab +1 -1
- package/Runtime/Resources/UIPrefabs/GamePausedModal_Battle.prefab +6 -6
- package/Runtime/Resources/UIPrefabs/GamePausedModal_Battle_Landscape.prefab +6 -6
- package/Runtime/Resources/UIPrefabs/ScoreSubmissionFailedModal_Portrait.prefab +1 -1
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,16 +1,22 @@
|
|
|
1
|
-
|
|
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
|
-
*
|
|
6
|
+
* sync UPM package contents with dev SDK updates ([16400be](https://github.com/mvmhyper/hyper-sdk/commit/16400bef4a2488bdabe9efbdd520ef444a478346))
|
|
7
7
|
|
|
8
|
-
|
|
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
|
-
*
|
|
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.
|
|
308
|
-
m_SizeDelta: {x:
|
|
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:
|
|
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.
|
|
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
|
|
@@ -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(
|
|
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 =
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
659
|
-
|
|
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
|
-
|
|
795
|
-
|
|
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.
|
|
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.
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
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
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
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
|
{
|
|
@@ -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:
|
|
453
|
-
m_AnchorMax: {x: 0, y:
|
|
454
|
-
m_AnchoredPosition: {x:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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.
|
|
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",
|