app.hypergames.hypersdk 1.4.5 → 1.4.7

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.4.7](https://github.com/mvmhyper/hyper-sdk/compare/v1.4.6...v1.4.7) (2025-12-16)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * game state reset on restart ([209c92a](https://github.com/mvmhyper/hyper-sdk/commit/209c92a5e94d6333334b1258bae00221adc1058a))
7
+
8
+ ## [1.4.6](https://github.com/mvmhyper/hyper-sdk/compare/v1.4.5...v1.4.6) (2025-12-12)
9
+
10
+
11
+ ### Bug Fixes
12
+
13
+ * remove mask from Hyper SDK control bar to eliminate jagged edges ([8190008](https://github.com/mvmhyper/hyper-sdk/commit/819000885491f90371fe57006a3f1f83ec3f6622))
14
+
1
15
  ## [1.4.5](https://github.com/mvmhyper/hyper-sdk/compare/v1.4.4...v1.4.5) (2025-12-11)
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: 509.1169, 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: 509.1169, 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
@@ -19,8 +19,6 @@ namespace Hyper.Internal
19
19
  [SerializeField] private Button connectionStatusIcon;
20
20
 
21
21
  [Header("Sprites")]
22
- [SerializeField] Sprite portraitBG;
23
- [SerializeField] Sprite landscapeBG;
24
22
  [SerializeField] Sprite pauseBarsLight;
25
23
  [SerializeField] Sprite pauseBarsDark;
26
24
 
@@ -41,7 +39,7 @@ namespace Hyper.Internal
41
39
  private const float CENTERED_LAYOUT_TIMER_Y = -13f;
42
40
  private const float CENTERED_LAYOUT_SCORE_FONT_SIZE = 100f;
43
41
  private const float CENTERED_LAYOUT_TIMER_FONT_SIZE = 50f;
44
-
42
+
45
43
  private const float DEFAULT_LAYOUT_SCORE_Y = 10f;
46
44
  private const float DEFAULT_LAYOUT_TIMER_X = 35f;
47
45
  private const float DEFAULT_LAYOUT_TIMER_Y = 10f;
@@ -73,21 +71,19 @@ namespace Hyper.Internal
73
71
  }
74
72
 
75
73
  private void CacheTextComponents()
76
- {
77
- _scoreTextComponent = scoreTextRect.GetComponent<TextMeshProUGUI>();
74
+ {
75
+ _scoreTextComponent = scoreTextRect.GetComponent<TextMeshProUGUI>();
78
76
  _timerTextComponent = timerText.GetComponent<TextMeshProUGUI>();
79
77
  }
80
78
 
81
79
  private void ConfigureOrientation(RectTransform rect)
82
- {
80
+ {
83
81
  if (_gameManager.IsPortrait())
84
82
  {
85
- roundedBG.sprite = portraitBG;
86
83
  rect.sizeDelta = new Vector2(rect.sizeDelta.x, 150);
87
84
  }
88
85
  else
89
86
  {
90
- roundedBG.sprite = landscapeBG;
91
87
  rect.sizeDelta = new Vector2(rect.sizeDelta.x, 180);
92
88
  }
93
89
  }
@@ -121,11 +117,11 @@ namespace Hyper.Internal
121
117
  _livesDisplay = livesInstance.GetComponent<LivesDisplay>();
122
118
 
123
119
  if (_livesDisplay == null)
124
- {
120
+ {
125
121
  Debug.LogError("[ControlBar] LivesDisplay prefab does not have LivesDisplay component!");
126
122
  Destroy(livesInstance);
127
- return;
128
- }
123
+ return;
124
+ }
129
125
 
130
126
  // Position on the left side where timer would be in default layout
131
127
  RectTransform livesRect = livesInstance.GetComponent<RectTransform>();
@@ -234,11 +230,11 @@ namespace Hyper.Internal
234
230
  roundedBG.color = Color.black;
235
231
  safeAreaFillerBG.color = Color.black;
236
232
 
237
- _scoreTextComponent.color = Color.white;
238
- _timerTextComponent.color = Color.white;
233
+ _scoreTextComponent.color = Color.white;
234
+ _timerTextComponent.color = Color.white;
239
235
 
240
236
  pauseButtonImage.color = new Color(1, 1, 1, DARK_THEME_PAUSE_BUTTON_ALPHA);
241
- pauseBarsImage.sprite = pauseBarsDark;
237
+ pauseBarsImage.sprite = pauseBarsDark;
242
238
  }
243
239
 
244
240
  private void ApplyLightTheme()
@@ -257,7 +253,7 @@ namespace Hyper.Internal
257
253
  }
258
254
 
259
255
  private void ShowConnectionLostStatus()
260
- {
256
+ {
261
257
  // Show the connection lost status
262
258
  _gameManager.ShowConnectionLost();
263
259
  }
@@ -47,6 +47,9 @@ namespace Hyper.Internal
47
47
  rectTransform = GetComponent<RectTransform>();
48
48
  rectTransform.anchoredPosition = new Vector2(0, 150); // Hide off-screen
49
49
 
50
+ RectTransform rect = transform.GetComponent<RectTransform>();
51
+ ConfigureOrientation(rect);
52
+
50
53
  spriteLookup = new Dictionary<StatusIcon, Sprite>
51
54
  {
52
55
  { StatusIcon.Timer, timerSprite },
@@ -69,6 +72,18 @@ namespace Hyper.Internal
69
72
  HyperRuntime.EventManager.OnGameEnded += Hide;
70
73
  }
71
74
 
75
+ private void ConfigureOrientation(RectTransform rect)
76
+ {
77
+ if (HyperRuntime.GameManager.IsPortrait())
78
+ {
79
+ rect.sizeDelta = new Vector2(rect.sizeDelta.x, 150);
80
+ }
81
+ else
82
+ {
83
+ rect.sizeDelta = new Vector2(rect.sizeDelta.x, 180);
84
+ }
85
+ }
86
+
72
87
  void OnDisable()
73
88
  {
74
89
  if (HyperRuntime.EventManager != null)
@@ -125,7 +140,8 @@ namespace Hyper.Internal
125
140
 
126
141
  private void SlideInAndOutAnimation(bool pingPong = true)
127
142
  {
128
- rectTransform.DOAnchorPosY(-150f, 0.45f).SetUpdate(true).SetEase(HyperTween.Ease.InQuad).OnComplete(() =>
143
+ int yOffset = HyperRuntime.GameManager.IsPortrait() ? 150 : 180;
144
+ rectTransform.DOAnchorPosY(-yOffset, 0.45f).SetUpdate(true).SetEase(HyperTween.Ease.InQuad).OnComplete(() =>
129
145
  {
130
146
  if (pingPong)
131
147
  {
@@ -52,7 +52,7 @@ TextureImporter:
52
52
  alignment: 0
53
53
  spritePivot: {x: 0.5, y: 0.5}
54
54
  spritePixelsToUnits: 100
55
- spriteBorder: {x: 0, y: 112, z: 0, w: 0}
55
+ spriteBorder: {x: 99, y: 112, z: 99, w: 0}
56
56
  spriteGenerateFallbackPhysicsShape: 0
57
57
  alphaUsage: 1
58
58
  alphaIsTransparency: 1
@@ -63,7 +63,6 @@ GameObject:
63
63
  - component: {fileID: 169989670260607081}
64
64
  - component: {fileID: 8283029980859711652}
65
65
  - component: {fileID: 319378978593858649}
66
- - component: {fileID: 7661383990665849485}
67
66
  m_Layer: 5
68
67
  m_Name: RoundedBG
69
68
  m_TagString: Untagged
@@ -133,19 +132,6 @@ MonoBehaviour:
133
132
  m_FillOrigin: 0
134
133
  m_UseSpriteMesh: 1
135
134
  m_PixelsPerUnitMultiplier: 2.245
136
- --- !u!114 &7661383990665849485
137
- MonoBehaviour:
138
- m_ObjectHideFlags: 0
139
- m_CorrespondingSourceObject: {fileID: 0}
140
- m_PrefabInstance: {fileID: 0}
141
- m_PrefabAsset: {fileID: 0}
142
- m_GameObject: {fileID: 1442877918737098795}
143
- m_Enabled: 1
144
- m_EditorHideFlags: 0
145
- m_Script: {fileID: 11500000, guid: 31a19414c41e5ae4aae2af33fee712f6, type: 3}
146
- m_Name:
147
- m_EditorClassIdentifier:
148
- m_ShowMaskGraphic: 1
149
135
  --- !u!1 &2473909893973907380
150
136
  GameObject:
151
137
  m_ObjectHideFlags: 0
@@ -648,7 +634,7 @@ RectTransform:
648
634
  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
649
635
  m_AnchorMin: {x: 1, y: 0.5}
650
636
  m_AnchorMax: {x: 1, y: 0.5}
651
- m_AnchoredPosition: {x: -44.67, y: 13.5}
637
+ m_AnchoredPosition: {x: -44.670044, y: 13.5}
652
638
  m_SizeDelta: {x: 120, y: 120}
653
639
  m_Pivot: {x: 1, y: 0.5}
654
640
  --- !u!222 &8447495786965002045
@@ -1072,8 +1058,6 @@ MonoBehaviour:
1072
1058
  pauseButtonImage: {fileID: 6337179202905528179}
1073
1059
  pauseBarsImage: {fileID: 7880691058749829457}
1074
1060
  connectionStatusIcon: {fileID: 8600269090702546619}
1075
- portraitBG: {fileID: 21300000, guid: 72b18270f6563fe49bb2d813995c0969, type: 3}
1076
- landscapeBG: {fileID: 21300000, guid: 8561720c19e71834095b9f9f773495e1, type: 3}
1077
1061
  pauseBarsLight: {fileID: 21300000, guid: 5bf785ff9f45bcf4a89ffc70e363eb69, type: 3}
1078
1062
  pauseBarsDark: {fileID: 21300000, guid: 023ea868e45992b46ab65bc4b6fb72c7, type: 3}
1079
1063
  livesDisplayPrefab: {fileID: 5031749136894004241, guid: b7f1d0f9e3734df4c9feb3385b835f4b, type: 3}
@@ -239,7 +239,7 @@ RectTransform:
239
239
  m_PrefabInstance: {fileID: 0}
240
240
  m_PrefabAsset: {fileID: 0}
241
241
  m_GameObject: {fileID: 3686714507548732898}
242
- m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
242
+ m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
243
243
  m_LocalPosition: {x: 0, y: 0, z: 0}
244
244
  m_LocalScale: {x: 1, y: 1, z: 1}
245
245
  m_ConstrainProportionsScale: 0
@@ -250,7 +250,7 @@ RectTransform:
250
250
  m_AnchorMin: {x: 0, y: 0}
251
251
  m_AnchorMax: {x: 1, y: 1}
252
252
  m_AnchoredPosition: {x: 0, y: 0}
253
- m_SizeDelta: {x: 0, y: 0}
253
+ m_SizeDelta: {x: 0, y: 0.00012207}
254
254
  m_Pivot: {x: 0.5, y: 0.5}
255
255
  --- !u!222 &4077741713236914486
256
256
  CanvasRenderer:
@@ -280,8 +280,8 @@ MonoBehaviour:
280
280
  m_OnCullStateChanged:
281
281
  m_PersistentCalls:
282
282
  m_Calls: []
283
- m_Sprite: {fileID: 0}
284
- m_Type: 0
283
+ m_Sprite: {fileID: 21300000, guid: 72b18270f6563fe49bb2d813995c0969, type: 3}
284
+ m_Type: 1
285
285
  m_PreserveAspect: 0
286
286
  m_FillCenter: 1
287
287
  m_FillMethod: 4
@@ -289,7 +289,7 @@ MonoBehaviour:
289
289
  m_FillClockwise: 1
290
290
  m_FillOrigin: 0
291
291
  m_UseSpriteMesh: 0
292
- m_PixelsPerUnitMultiplier: 1
292
+ m_PixelsPerUnitMultiplier: 2.245
293
293
  --- !u!1 &5659532641892873429
294
294
  GameObject:
295
295
  m_ObjectHideFlags: 0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "app.hypergames.hypersdk",
3
- "version": "1.4.5",
3
+ "version": "1.4.7",
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",
@@ -1,156 +0,0 @@
1
- fileFormatVersion: 2
2
- guid: 8561720c19e71834095b9f9f773495e1
3
- TextureImporter:
4
- internalIDToNameTable: []
5
- externalObjects: {}
6
- serializedVersion: 13
7
- mipmaps:
8
- mipMapMode: 0
9
- enableMipMap: 0
10
- sRGBTexture: 1
11
- linearTexture: 0
12
- fadeOut: 0
13
- borderMipMap: 0
14
- mipMapsPreserveCoverage: 0
15
- alphaTestReferenceValue: 0.5
16
- mipMapFadeDistanceStart: 1
17
- mipMapFadeDistanceEnd: 3
18
- bumpmap:
19
- convertToNormalMap: 0
20
- externalNormalMap: 0
21
- heightScale: 0.25
22
- normalMapFilter: 0
23
- flipGreenChannel: 0
24
- isReadable: 0
25
- streamingMipmaps: 0
26
- streamingMipmapsPriority: 0
27
- vTOnly: 0
28
- ignoreMipmapLimit: 0
29
- grayScaleToAlpha: 0
30
- generateCubemap: 6
31
- cubemapConvolution: 0
32
- seamlessCubemap: 0
33
- textureFormat: 1
34
- maxTextureSize: 2048
35
- textureSettings:
36
- serializedVersion: 2
37
- filterMode: 1
38
- aniso: 1
39
- mipBias: 0
40
- wrapU: 1
41
- wrapV: 1
42
- wrapW: 1
43
- nPOTScale: 0
44
- lightmap: 0
45
- compressionQuality: 50
46
- spriteMode: 1
47
- spriteExtrude: 1
48
- spriteMeshType: 1
49
- alignment: 0
50
- spritePivot: {x: 0.5, y: 0.5}
51
- spritePixelsToUnits: 100
52
- spriteBorder: {x: 0, y: 0, z: 0, w: 0}
53
- spriteGenerateFallbackPhysicsShape: 0
54
- alphaUsage: 1
55
- alphaIsTransparency: 1
56
- spriteTessellationDetail: -1
57
- textureType: 8
58
- textureShape: 1
59
- singleChannelComponent: 0
60
- flipbookRows: 1
61
- flipbookColumns: 1
62
- maxTextureSizeSet: 0
63
- compressionQualitySet: 0
64
- textureFormatSet: 0
65
- ignorePngGamma: 0
66
- applyGammaDecoding: 0
67
- swizzle: 50462976
68
- cookieLightType: 0
69
- platformSettings:
70
- - serializedVersion: 4
71
- buildTarget: DefaultTexturePlatform
72
- maxTextureSize: 2048
73
- resizeAlgorithm: 0
74
- textureFormat: -1
75
- textureCompression: 1
76
- compressionQuality: 50
77
- crunchedCompression: 1
78
- allowsAlphaSplitting: 0
79
- overridden: 0
80
- ignorePlatformSupport: 0
81
- androidETC2FallbackOverride: 0
82
- forceMaximumCompressionQuality_BC6H_BC7: 0
83
- - serializedVersion: 4
84
- buildTarget: Standalone
85
- maxTextureSize: 2048
86
- resizeAlgorithm: 0
87
- textureFormat: 12
88
- textureCompression: 1
89
- compressionQuality: 50
90
- crunchedCompression: 0
91
- allowsAlphaSplitting: 0
92
- overridden: 0
93
- ignorePlatformSupport: 0
94
- androidETC2FallbackOverride: 0
95
- forceMaximumCompressionQuality_BC6H_BC7: 0
96
- - serializedVersion: 4
97
- buildTarget: iOS
98
- maxTextureSize: 2048
99
- resizeAlgorithm: 0
100
- textureFormat: -1
101
- textureCompression: 1
102
- compressionQuality: 50
103
- crunchedCompression: 0
104
- allowsAlphaSplitting: 0
105
- overridden: 0
106
- ignorePlatformSupport: 0
107
- androidETC2FallbackOverride: 0
108
- forceMaximumCompressionQuality_BC6H_BC7: 0
109
- - serializedVersion: 4
110
- buildTarget: WebGL
111
- maxTextureSize: 2048
112
- resizeAlgorithm: 0
113
- textureFormat: 12
114
- textureCompression: 1
115
- compressionQuality: 50
116
- crunchedCompression: 0
117
- allowsAlphaSplitting: 0
118
- overridden: 0
119
- ignorePlatformSupport: 0
120
- androidETC2FallbackOverride: 0
121
- forceMaximumCompressionQuality_BC6H_BC7: 0
122
- - serializedVersion: 4
123
- buildTarget: Android
124
- maxTextureSize: 2048
125
- resizeAlgorithm: 0
126
- textureFormat: -1
127
- textureCompression: 1
128
- compressionQuality: 50
129
- crunchedCompression: 0
130
- allowsAlphaSplitting: 0
131
- overridden: 0
132
- ignorePlatformSupport: 0
133
- androidETC2FallbackOverride: 0
134
- forceMaximumCompressionQuality_BC6H_BC7: 0
135
- spriteSheet:
136
- serializedVersion: 2
137
- sprites: []
138
- outline: []
139
- customData:
140
- physicsShape: []
141
- bones: []
142
- spriteID: 5e97eb03825dee720800000000000000
143
- internalID: 0
144
- vertices: []
145
- indices:
146
- edges: []
147
- weights: []
148
- secondaryTextures: []
149
- spriteCustomMetadata:
150
- entries: []
151
- nameFileIdTable: {}
152
- mipmapLimitGroupName:
153
- pSDRemoveMatte: 0
154
- userData:
155
- assetBundleName:
156
- assetBundleVariant: