app.hypergames.hypersdk 1.8.2 → 1.8.4
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 +14 -0
- package/HyperLoader.unity +2 -2
- package/Runtime/Internal/Data/URLData.cs +14 -18
- package/Runtime/Internal/Managers/BackendManager.cs +300 -6
- package/Runtime/Internal/Managers/DataManager.cs +21 -0
- package/Runtime/Internal/Managers/EventManager.cs +2 -0
- package/Runtime/Internal/Managers/GameManager.cs +4 -0
- package/Runtime/Internal/UI/Components/ConnectionStatusIcon.cs +261 -16
- package/Runtime/Internal/UI/Modals/ScoreSubmissionFailedModal.cs +1 -1
- package/Runtime/Plugins/WebGL/HyperTutorialCachePlugin.jslib +4 -2
- package/Runtime/Plugins/WebGL/HyperWebSocketPlugin.jslib +5 -0
- package/Runtime/Resources/Sprites/Control Bar/Internet Connection/Group 36946.png +0 -0
- package/Runtime/Resources/Sprites/Control Bar/Internet Connection/Group 36946.png.meta +169 -0
- package/Runtime/Resources/Sprites/Control Bar/Internet Connection/Group-1.png +0 -0
- package/Runtime/Resources/Sprites/Control Bar/Internet Connection/Group-1.png.meta +169 -0
- package/Runtime/Resources/Sprites/Control Bar/Internet Connection/Group-2.png +0 -0
- package/Runtime/Resources/Sprites/Control Bar/Internet Connection/Group-2.png.meta +169 -0
- package/Runtime/Resources/Sprites/Control Bar/Internet Connection/Group.png +0 -0
- package/Runtime/Resources/Sprites/Control Bar/Internet Connection/Group.png.meta +169 -0
- package/Runtime/Resources/Sprites/Control Bar/{Icon_YesWifi.png.meta → Internet Connection/Icon_YesWifi.png.meta } +1 -1
- package/Runtime/Resources/Sprites/Control Bar/Internet Connection/Vector.png +0 -0
- package/Runtime/Resources/Sprites/Control Bar/Internet Connection/Vector.png.meta +169 -0
- package/Runtime/Resources/Sprites/Control Bar/Internet Connection.meta +8 -0
- package/Runtime/Resources/UIPrefabs/ControlBar.prefab +735 -68
- package/package.json +1 -1
- /package/Runtime/Resources/Sprites/Control Bar/{Icon_NoWifi.png → Internet Connection/Icon_NoWifi.png} +0 -0
- /package/Runtime/Resources/Sprites/Control Bar/{Icon_NoWifi.png.meta → Internet Connection/Icon_NoWifi.png.meta} +0 -0
- /package/Runtime/Resources/Sprites/Control Bar/{Icon_YesWifi.png → Internet Connection/Icon_YesWifi.png} +0 -0
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
using Hyper.Internal.Managers;
|
|
2
2
|
using Hyper.Internal.Animation;
|
|
3
|
+
using TMPro;
|
|
3
4
|
using UnityEngine;
|
|
5
|
+
using UnityEngine.UI;
|
|
4
6
|
|
|
5
7
|
namespace Hyper.Internal
|
|
6
8
|
{
|
|
@@ -9,43 +11,286 @@ namespace Hyper.Internal
|
|
|
9
11
|
public GameObject lost;
|
|
10
12
|
public GameObject restored;
|
|
11
13
|
|
|
14
|
+
[Tooltip("Wifi / latency visuals while connected. Leave unassigned only if the prefab has no dynamic group.")]
|
|
15
|
+
public GameObject dynamicPingIcon;
|
|
16
|
+
|
|
17
|
+
[Header("Ping thresholds (ms)")]
|
|
18
|
+
[Tooltip("Latency at or below (when connected) uses solid good color; above uses solid average color.")]
|
|
19
|
+
[SerializeField] private int goodPingMaxMs = 103;
|
|
20
|
+
[Tooltip("Bar section alphas grade from all 1 at 0 ms to the bad profile at this latency (ms).")]
|
|
21
|
+
[SerializeField] private int badPingMaxMs = 293;
|
|
22
|
+
|
|
23
|
+
[Header("Ping colors (no blending — either good or average)")]
|
|
24
|
+
[SerializeField] private Color goodPingColor = new Color(0.14509805f, 0.6666667f, 0.4f, 1f);
|
|
25
|
+
[SerializeField] private Color averagePingColor = new Color(1f, 0.4862745f, 0f, 1f);
|
|
26
|
+
|
|
27
|
+
[Header("Ping bars (top to bottom)")]
|
|
28
|
+
[SerializeField] private Image goodPingBar;
|
|
29
|
+
[SerializeField] private Image averagePingBar;
|
|
30
|
+
[SerializeField] private Image lowPingBar;
|
|
31
|
+
|
|
32
|
+
[Header("Wifi holder extras")]
|
|
33
|
+
[Tooltip("Background uses same RGB as the active ping tone; alpha fixed at 10%.")]
|
|
34
|
+
[SerializeField] private Image wifiBackgroundImage;
|
|
35
|
+
[Tooltip("Wifi dot uses same RGB; alpha fixed at 100%.")]
|
|
36
|
+
[SerializeField] private Image wifiDotImage;
|
|
37
|
+
|
|
38
|
+
[Header("Latency label")]
|
|
39
|
+
[SerializeField] private TextMeshProUGUI wifiLatencyText;
|
|
40
|
+
|
|
41
|
+
private const float WifiBackgroundAlpha = 0.175f;
|
|
42
|
+
private const float WifiDotAlpha = 1f;
|
|
43
|
+
|
|
44
|
+
/// <summary>Never below this so bars stay faintly visible.</summary>
|
|
45
|
+
private const float BarAlphaFloor = 0.1f;
|
|
46
|
+
|
|
47
|
+
// stressT = 0 good latency → all bars full; stressT = 1 bad → graded (bottom strongest) + dot at 1.
|
|
48
|
+
private const float TopBarAlphaGood = 1f;
|
|
49
|
+
private const float MidBarAlphaGood = 1f;
|
|
50
|
+
private const float LowBarAlphaGood = 1f;
|
|
51
|
+
|
|
52
|
+
private const float TopBarAlphaBad = 0.12f;
|
|
53
|
+
private const float MidBarAlphaBad = 0.3f;
|
|
54
|
+
private const float LowBarAlphaBad = 0.65f;
|
|
55
|
+
|
|
56
|
+
private const string HypergamesProductionApiUrl = "https://api.hypergames.app";
|
|
57
|
+
|
|
58
|
+
#if UNITY_EDITOR
|
|
59
|
+
[Header("Editor test")]
|
|
60
|
+
[SerializeField] private bool simulateRandomPingInEditor = true;
|
|
61
|
+
[SerializeField] private int editorSimMinMs = 20;
|
|
62
|
+
[SerializeField] private int editorSimMaxMs = 400;
|
|
63
|
+
[SerializeField] private float editorSimIntervalSeconds = 2f;
|
|
64
|
+
|
|
65
|
+
private float _editorNextPingSampleTime;
|
|
66
|
+
private int _editorSimulatedLatencyMs;
|
|
67
|
+
#endif
|
|
68
|
+
|
|
12
69
|
private RectTransform rectTransform;
|
|
70
|
+
private EventManager _eventManager;
|
|
71
|
+
private BackendManager _backendManager;
|
|
13
72
|
|
|
14
73
|
private void Awake()
|
|
15
74
|
{
|
|
16
|
-
|
|
75
|
+
_eventManager = HyperRuntime.EventManager;
|
|
76
|
+
_backendManager = HyperRuntime.BackendManager;
|
|
17
77
|
rectTransform = GetComponent<RectTransform>();
|
|
18
78
|
|
|
19
|
-
|
|
20
|
-
|
|
79
|
+
_eventManager.OnInternetConnectionLost += ConnectionLost;
|
|
80
|
+
_eventManager.OnInternetConnectionFound += ConnectionRestored;
|
|
81
|
+
_eventManager.OnBackendSocketManuallyClosed += OnBackendSocketManuallyClosed;
|
|
21
82
|
}
|
|
22
83
|
|
|
23
84
|
private void Start()
|
|
24
85
|
{
|
|
25
|
-
|
|
86
|
+
ApplyStandardVisibility();
|
|
87
|
+
|
|
88
|
+
if (!ShouldUseDynamicPingIcon() && rectTransform != null)
|
|
89
|
+
{
|
|
90
|
+
Vector2 p = rectTransform.anchoredPosition;
|
|
91
|
+
rectTransform.anchoredPosition = new Vector2(p.x, -100f);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
#if UNITY_EDITOR
|
|
95
|
+
if (simulateRandomPingInEditor)
|
|
96
|
+
{
|
|
97
|
+
editorSimMaxMs = Mathf.Max(editorSimMinMs, editorSimMaxMs);
|
|
98
|
+
editorSimIntervalSeconds = Mathf.Max(0.1f, editorSimIntervalSeconds);
|
|
99
|
+
ResampleEditorPing();
|
|
100
|
+
_editorNextPingSampleTime = Time.realtimeSinceStartup + editorSimIntervalSeconds;
|
|
101
|
+
}
|
|
102
|
+
#endif
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
private void OnDestroy()
|
|
106
|
+
{
|
|
107
|
+
if (_eventManager != null)
|
|
108
|
+
{
|
|
109
|
+
_eventManager.OnInternetConnectionLost -= ConnectionLost;
|
|
110
|
+
_eventManager.OnInternetConnectionFound -= ConnectionRestored;
|
|
111
|
+
_eventManager.OnBackendSocketManuallyClosed -= OnBackendSocketManuallyClosed;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
private void Update()
|
|
116
|
+
{
|
|
117
|
+
#if UNITY_EDITOR
|
|
118
|
+
if (simulateRandomPingInEditor)
|
|
119
|
+
{
|
|
120
|
+
if (Time.realtimeSinceStartup >= _editorNextPingSampleTime)
|
|
121
|
+
{
|
|
122
|
+
ResampleEditorPing();
|
|
123
|
+
_editorNextPingSampleTime = Time.realtimeSinceStartup + editorSimIntervalSeconds;
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
#endif
|
|
127
|
+
|
|
128
|
+
bool haveLatency = TryGetCurrentLatency(out int lat, out bool socketOk);
|
|
129
|
+
bool showPingUi = ShouldUseDynamicPingIcon();
|
|
130
|
+
|
|
131
|
+
if (wifiLatencyText != null)
|
|
132
|
+
{
|
|
133
|
+
if (!showPingUi)
|
|
134
|
+
wifiLatencyText.text = string.Empty;
|
|
135
|
+
else if (!haveLatency || !socketOk || lat < 0)
|
|
136
|
+
wifiLatencyText.text = "--";
|
|
137
|
+
else
|
|
138
|
+
wifiLatencyText.text = $"{Mathf.Clamp(lat, 0, badPingMaxMs)} ms";
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
if (!showPingUi || dynamicPingIcon == null || !dynamicPingIcon.activeSelf)
|
|
142
|
+
return;
|
|
143
|
+
|
|
144
|
+
if (!haveLatency)
|
|
145
|
+
return;
|
|
146
|
+
|
|
147
|
+
RefreshPingBars(lat, socketOk);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
private bool TryGetCurrentLatency(out int lat, out bool socketOk)
|
|
151
|
+
{
|
|
152
|
+
#if UNITY_EDITOR
|
|
153
|
+
if (simulateRandomPingInEditor)
|
|
154
|
+
{
|
|
155
|
+
lat = _editorSimulatedLatencyMs;
|
|
156
|
+
socketOk = true;
|
|
157
|
+
return true;
|
|
158
|
+
}
|
|
159
|
+
#endif
|
|
160
|
+
BackendManager backend = HyperRuntime.BackendManager;
|
|
161
|
+
if (backend == null)
|
|
162
|
+
{
|
|
163
|
+
lat = -1;
|
|
164
|
+
socketOk = false;
|
|
165
|
+
return false;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
lat = backend.SdkSmoothedLatencyMs;
|
|
169
|
+
socketOk = backend.isSocketConnected;
|
|
170
|
+
return true;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
#if UNITY_EDITOR
|
|
174
|
+
private void ResampleEditorPing()
|
|
175
|
+
{
|
|
176
|
+
int min = Mathf.Min(editorSimMinMs, editorSimMaxMs);
|
|
177
|
+
int max = Mathf.Max(editorSimMinMs, editorSimMaxMs);
|
|
178
|
+
_editorSimulatedLatencyMs = Random.Range(min, max + 1);
|
|
179
|
+
}
|
|
180
|
+
#endif
|
|
181
|
+
|
|
182
|
+
private void OnBackendSocketManuallyClosed()
|
|
183
|
+
{
|
|
184
|
+
this.DOKill();
|
|
185
|
+
gameObject.SetActive(false);
|
|
26
186
|
}
|
|
27
187
|
|
|
28
|
-
void ConnectionLost()
|
|
188
|
+
private void ConnectionLost()
|
|
29
189
|
{
|
|
30
|
-
lost
|
|
31
|
-
restored
|
|
190
|
+
SetActiveSafe(lost, true);
|
|
191
|
+
SetActiveSafe(restored, false);
|
|
192
|
+
SetActiveSafe(dynamicPingIcon, false);
|
|
32
193
|
|
|
33
|
-
rectTransform
|
|
194
|
+
if (rectTransform != null)
|
|
195
|
+
rectTransform.DOAnchorPosY(0f, 0.5f).SetUpdate(true).SetEase(HyperTween.Ease.InQuad);
|
|
34
196
|
}
|
|
35
197
|
|
|
36
|
-
void ConnectionRestored()
|
|
198
|
+
private void ConnectionRestored()
|
|
37
199
|
{
|
|
38
|
-
lost
|
|
39
|
-
restored
|
|
200
|
+
SetActiveSafe(lost, false);
|
|
201
|
+
SetActiveSafe(restored, false);
|
|
202
|
+
SetActiveSafe(dynamicPingIcon, ShouldUseDynamicPingIcon());
|
|
40
203
|
|
|
41
|
-
rectTransform
|
|
204
|
+
if (rectTransform != null)
|
|
42
205
|
{
|
|
43
|
-
|
|
206
|
+
rectTransform.DOAnchorPosY(0f, 0.5f).SetUpdate(true).SetEase(HyperTween.Ease.InQuad).OnComplete(() =>
|
|
44
207
|
{
|
|
45
|
-
|
|
208
|
+
if (!ShouldUseDynamicPingIcon())
|
|
209
|
+
{
|
|
210
|
+
HyperTween.DelayedCall(4f, () =>
|
|
211
|
+
{
|
|
212
|
+
if (rectTransform != null)
|
|
213
|
+
rectTransform.DOAnchorPosY(-100f, 0.5f).SetUpdate(true).SetEase(HyperTween.Ease.InQuad);
|
|
214
|
+
});
|
|
215
|
+
}
|
|
46
216
|
});
|
|
47
|
-
}
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
private void ApplyStandardVisibility()
|
|
221
|
+
{
|
|
222
|
+
SetActiveSafe(lost, false);
|
|
223
|
+
SetActiveSafe(restored, false);
|
|
224
|
+
SetActiveSafe(dynamicPingIcon, ShouldUseDynamicPingIcon());
|
|
225
|
+
}
|
|
226
|
+
|
|
227
|
+
private bool ShouldUseDynamicPingIcon()
|
|
228
|
+
{
|
|
229
|
+
if (HyperRuntime.GameManager == null || !HyperRuntime.GameManager.IsBattleMode)
|
|
230
|
+
return false;
|
|
231
|
+
|
|
232
|
+
if (_backendManager == null)
|
|
233
|
+
return true;
|
|
234
|
+
|
|
235
|
+
return _backendManager.GetServerUrl() != HypergamesProductionApiUrl;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
private static void SetActiveSafe(GameObject go, bool active)
|
|
239
|
+
{
|
|
240
|
+
if (go != null)
|
|
241
|
+
go.SetActive(active);
|
|
48
242
|
}
|
|
49
|
-
}
|
|
50
243
|
|
|
244
|
+
private void RefreshPingBars(int lat, bool socketOk)
|
|
245
|
+
{
|
|
246
|
+
bool isGoodPing = socketOk && lat >= 0 && lat <= goodPingMaxMs;
|
|
247
|
+
Color tone = isGoodPing ? goodPingColor : averagePingColor;
|
|
248
|
+
|
|
249
|
+
float stressT;
|
|
250
|
+
if (!socketOk || lat < 0)
|
|
251
|
+
{
|
|
252
|
+
stressT = 1f;
|
|
253
|
+
}
|
|
254
|
+
else
|
|
255
|
+
{
|
|
256
|
+
float span = Mathf.Max(1f, badPingMaxMs);
|
|
257
|
+
stressT = Mathf.Clamp01(lat / span);
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
float topAlpha = Mathf.Lerp(TopBarAlphaGood, TopBarAlphaBad, stressT);
|
|
261
|
+
float midAlpha = Mathf.Lerp(MidBarAlphaGood, MidBarAlphaBad, stressT);
|
|
262
|
+
float lowAlpha = Mathf.Lerp(LowBarAlphaGood, LowBarAlphaBad, stressT);
|
|
263
|
+
|
|
264
|
+
topAlpha = Mathf.Max(topAlpha, BarAlphaFloor);
|
|
265
|
+
midAlpha = Mathf.Max(midAlpha, BarAlphaFloor);
|
|
266
|
+
lowAlpha = Mathf.Max(lowAlpha, BarAlphaFloor);
|
|
267
|
+
|
|
268
|
+
ApplyBarTint(goodPingBar, tone, topAlpha);
|
|
269
|
+
ApplyBarTint(averagePingBar, tone, midAlpha);
|
|
270
|
+
ApplyBarTint(lowPingBar, tone, lowAlpha);
|
|
271
|
+
|
|
272
|
+
ApplyToneFixedAlpha(wifiBackgroundImage, tone, WifiBackgroundAlpha);
|
|
273
|
+
ApplyToneFixedAlpha(wifiDotImage, tone, WifiDotAlpha);
|
|
274
|
+
}
|
|
275
|
+
|
|
276
|
+
private static void ApplyBarTint(Image img, Color toneRgb, float alphaMultiplier)
|
|
277
|
+
{
|
|
278
|
+
if (img == null)
|
|
279
|
+
return;
|
|
280
|
+
|
|
281
|
+
Color c = toneRgb;
|
|
282
|
+
c.a = Mathf.Clamp01(toneRgb.a * Mathf.Clamp01(alphaMultiplier));
|
|
283
|
+
img.color = c;
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
private static void ApplyToneFixedAlpha(Image img, Color toneRgb, float alpha)
|
|
287
|
+
{
|
|
288
|
+
if (img == null)
|
|
289
|
+
return;
|
|
290
|
+
|
|
291
|
+
Color c = toneRgb;
|
|
292
|
+
c.a = alpha;
|
|
293
|
+
img.color = c;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
51
296
|
}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
mergeInto(LibraryManager.library, {
|
|
2
2
|
$CachedTutorialData: null,
|
|
3
3
|
|
|
4
|
-
FetchAndCacheTutorials: function (gameSlugPtr, gameObjectPtr) {
|
|
4
|
+
FetchAndCacheTutorials: function (serverBaseUrlPtr, gameSlugPtr, gameObjectPtr) {
|
|
5
|
+
let baseUrl = UTF8ToString(serverBaseUrlPtr);
|
|
6
|
+
if (baseUrl.endsWith("/")) baseUrl = baseUrl.slice(0, -1);
|
|
5
7
|
const gameSlug = UTF8ToString(gameSlugPtr);
|
|
6
8
|
const gameObject = UTF8ToString(gameObjectPtr);
|
|
7
9
|
|
|
8
|
-
const endpoint =
|
|
10
|
+
const endpoint = `${baseUrl}/games/${gameSlug}/tutorials`;
|
|
9
11
|
|
|
10
12
|
caches.open("tutorial-cache").then(async (cache) => {
|
|
11
13
|
try {
|
|
@@ -45,6 +45,11 @@ mergeInto(LibraryManager.library, {
|
|
|
45
45
|
const msg = JSON.stringify(data);
|
|
46
46
|
SendMessage('HyperSDKSingleton', 'OnSocketScoreUpdated', msg);
|
|
47
47
|
});
|
|
48
|
+
|
|
49
|
+
socket.on('sdkPong', (data) => {
|
|
50
|
+
const msg = JSON.stringify(data);
|
|
51
|
+
SendMessage('HyperSDKSingleton', 'OnSocketSdkPong', msg);
|
|
52
|
+
});
|
|
48
53
|
},
|
|
49
54
|
|
|
50
55
|
SendWebSocketMessage: function (messagePtr) {
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
fileFormatVersion: 2
|
|
2
|
+
guid: 7ea254ee7cab588419030e57237587e2
|
|
3
|
+
TextureImporter:
|
|
4
|
+
internalIDToNameTable:
|
|
5
|
+
- first:
|
|
6
|
+
213: -505862413677581413
|
|
7
|
+
second: Group 36946_0
|
|
8
|
+
externalObjects: {}
|
|
9
|
+
serializedVersion: 13
|
|
10
|
+
mipmaps:
|
|
11
|
+
mipMapMode: 0
|
|
12
|
+
enableMipMap: 0
|
|
13
|
+
sRGBTexture: 1
|
|
14
|
+
linearTexture: 0
|
|
15
|
+
fadeOut: 0
|
|
16
|
+
borderMipMap: 0
|
|
17
|
+
mipMapsPreserveCoverage: 0
|
|
18
|
+
alphaTestReferenceValue: 0.5
|
|
19
|
+
mipMapFadeDistanceStart: 1
|
|
20
|
+
mipMapFadeDistanceEnd: 3
|
|
21
|
+
bumpmap:
|
|
22
|
+
convertToNormalMap: 0
|
|
23
|
+
externalNormalMap: 0
|
|
24
|
+
heightScale: 0.25
|
|
25
|
+
normalMapFilter: 0
|
|
26
|
+
flipGreenChannel: 0
|
|
27
|
+
isReadable: 0
|
|
28
|
+
streamingMipmaps: 0
|
|
29
|
+
streamingMipmapsPriority: 0
|
|
30
|
+
vTOnly: 0
|
|
31
|
+
ignoreMipmapLimit: 0
|
|
32
|
+
grayScaleToAlpha: 0
|
|
33
|
+
generateCubemap: 6
|
|
34
|
+
cubemapConvolution: 0
|
|
35
|
+
seamlessCubemap: 0
|
|
36
|
+
textureFormat: 1
|
|
37
|
+
maxTextureSize: 2048
|
|
38
|
+
textureSettings:
|
|
39
|
+
serializedVersion: 2
|
|
40
|
+
filterMode: 1
|
|
41
|
+
aniso: 1
|
|
42
|
+
mipBias: 0
|
|
43
|
+
wrapU: 1
|
|
44
|
+
wrapV: 1
|
|
45
|
+
wrapW: 1
|
|
46
|
+
nPOTScale: 0
|
|
47
|
+
lightmap: 0
|
|
48
|
+
compressionQuality: 50
|
|
49
|
+
spriteMode: 1
|
|
50
|
+
spriteExtrude: 1
|
|
51
|
+
spriteMeshType: 1
|
|
52
|
+
alignment: 0
|
|
53
|
+
spritePivot: {x: 0.5, y: 0.5}
|
|
54
|
+
spritePixelsToUnits: 100
|
|
55
|
+
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
|
56
|
+
spriteGenerateFallbackPhysicsShape: 1
|
|
57
|
+
alphaUsage: 1
|
|
58
|
+
alphaIsTransparency: 1
|
|
59
|
+
spriteTessellationDetail: -1
|
|
60
|
+
textureType: 8
|
|
61
|
+
textureShape: 1
|
|
62
|
+
singleChannelComponent: 0
|
|
63
|
+
flipbookRows: 1
|
|
64
|
+
flipbookColumns: 1
|
|
65
|
+
maxTextureSizeSet: 0
|
|
66
|
+
compressionQualitySet: 0
|
|
67
|
+
textureFormatSet: 0
|
|
68
|
+
ignorePngGamma: 0
|
|
69
|
+
applyGammaDecoding: 0
|
|
70
|
+
swizzle: 50462976
|
|
71
|
+
cookieLightType: 0
|
|
72
|
+
platformSettings:
|
|
73
|
+
- serializedVersion: 4
|
|
74
|
+
buildTarget: DefaultTexturePlatform
|
|
75
|
+
maxTextureSize: 2048
|
|
76
|
+
resizeAlgorithm: 0
|
|
77
|
+
textureFormat: -1
|
|
78
|
+
textureCompression: 1
|
|
79
|
+
compressionQuality: 50
|
|
80
|
+
crunchedCompression: 0
|
|
81
|
+
allowsAlphaSplitting: 0
|
|
82
|
+
overridden: 0
|
|
83
|
+
ignorePlatformSupport: 0
|
|
84
|
+
androidETC2FallbackOverride: 0
|
|
85
|
+
forceMaximumCompressionQuality_BC6H_BC7: 0
|
|
86
|
+
- serializedVersion: 4
|
|
87
|
+
buildTarget: Standalone
|
|
88
|
+
maxTextureSize: 2048
|
|
89
|
+
resizeAlgorithm: 0
|
|
90
|
+
textureFormat: -1
|
|
91
|
+
textureCompression: 1
|
|
92
|
+
compressionQuality: 50
|
|
93
|
+
crunchedCompression: 0
|
|
94
|
+
allowsAlphaSplitting: 0
|
|
95
|
+
overridden: 0
|
|
96
|
+
ignorePlatformSupport: 0
|
|
97
|
+
androidETC2FallbackOverride: 0
|
|
98
|
+
forceMaximumCompressionQuality_BC6H_BC7: 0
|
|
99
|
+
- serializedVersion: 4
|
|
100
|
+
buildTarget: Android
|
|
101
|
+
maxTextureSize: 2048
|
|
102
|
+
resizeAlgorithm: 0
|
|
103
|
+
textureFormat: -1
|
|
104
|
+
textureCompression: 1
|
|
105
|
+
compressionQuality: 50
|
|
106
|
+
crunchedCompression: 0
|
|
107
|
+
allowsAlphaSplitting: 0
|
|
108
|
+
overridden: 0
|
|
109
|
+
ignorePlatformSupport: 0
|
|
110
|
+
androidETC2FallbackOverride: 0
|
|
111
|
+
forceMaximumCompressionQuality_BC6H_BC7: 0
|
|
112
|
+
- serializedVersion: 4
|
|
113
|
+
buildTarget: WebGL
|
|
114
|
+
maxTextureSize: 2048
|
|
115
|
+
resizeAlgorithm: 0
|
|
116
|
+
textureFormat: -1
|
|
117
|
+
textureCompression: 1
|
|
118
|
+
compressionQuality: 50
|
|
119
|
+
crunchedCompression: 0
|
|
120
|
+
allowsAlphaSplitting: 0
|
|
121
|
+
overridden: 0
|
|
122
|
+
ignorePlatformSupport: 0
|
|
123
|
+
androidETC2FallbackOverride: 0
|
|
124
|
+
forceMaximumCompressionQuality_BC6H_BC7: 0
|
|
125
|
+
spriteSheet:
|
|
126
|
+
serializedVersion: 2
|
|
127
|
+
sprites:
|
|
128
|
+
- serializedVersion: 2
|
|
129
|
+
name: Group 36946_0
|
|
130
|
+
rect:
|
|
131
|
+
serializedVersion: 2
|
|
132
|
+
x: 0
|
|
133
|
+
y: 0
|
|
134
|
+
width: 64
|
|
135
|
+
height: 64
|
|
136
|
+
alignment: 0
|
|
137
|
+
pivot: {x: 0, y: 0}
|
|
138
|
+
border: {x: 0, y: 0, z: 0, w: 0}
|
|
139
|
+
customData:
|
|
140
|
+
outline: []
|
|
141
|
+
physicsShape: []
|
|
142
|
+
tessellationDetail: -1
|
|
143
|
+
bones: []
|
|
144
|
+
spriteID: b9ba68f90d0daf8f0800000000000000
|
|
145
|
+
internalID: -505862413677581413
|
|
146
|
+
vertices: []
|
|
147
|
+
indices:
|
|
148
|
+
edges: []
|
|
149
|
+
weights: []
|
|
150
|
+
outline: []
|
|
151
|
+
customData:
|
|
152
|
+
physicsShape: []
|
|
153
|
+
bones: []
|
|
154
|
+
spriteID: 5e97eb03825dee720800000000000000
|
|
155
|
+
internalID: 0
|
|
156
|
+
vertices: []
|
|
157
|
+
indices:
|
|
158
|
+
edges: []
|
|
159
|
+
weights: []
|
|
160
|
+
secondaryTextures: []
|
|
161
|
+
spriteCustomMetadata:
|
|
162
|
+
entries: []
|
|
163
|
+
nameFileIdTable:
|
|
164
|
+
Group 36946_0: -505862413677581413
|
|
165
|
+
mipmapLimitGroupName:
|
|
166
|
+
pSDRemoveMatte: 0
|
|
167
|
+
userData:
|
|
168
|
+
assetBundleName:
|
|
169
|
+
assetBundleVariant:
|
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
fileFormatVersion: 2
|
|
2
|
+
guid: 59e469bf5447a2843984dd0d1e3e49b6
|
|
3
|
+
TextureImporter:
|
|
4
|
+
internalIDToNameTable:
|
|
5
|
+
- first:
|
|
6
|
+
213: -1671329636532071926
|
|
7
|
+
second: Group-1_0
|
|
8
|
+
externalObjects: {}
|
|
9
|
+
serializedVersion: 13
|
|
10
|
+
mipmaps:
|
|
11
|
+
mipMapMode: 0
|
|
12
|
+
enableMipMap: 0
|
|
13
|
+
sRGBTexture: 1
|
|
14
|
+
linearTexture: 0
|
|
15
|
+
fadeOut: 0
|
|
16
|
+
borderMipMap: 0
|
|
17
|
+
mipMapsPreserveCoverage: 0
|
|
18
|
+
alphaTestReferenceValue: 0.5
|
|
19
|
+
mipMapFadeDistanceStart: 1
|
|
20
|
+
mipMapFadeDistanceEnd: 3
|
|
21
|
+
bumpmap:
|
|
22
|
+
convertToNormalMap: 0
|
|
23
|
+
externalNormalMap: 0
|
|
24
|
+
heightScale: 0.25
|
|
25
|
+
normalMapFilter: 0
|
|
26
|
+
flipGreenChannel: 0
|
|
27
|
+
isReadable: 0
|
|
28
|
+
streamingMipmaps: 0
|
|
29
|
+
streamingMipmapsPriority: 0
|
|
30
|
+
vTOnly: 0
|
|
31
|
+
ignoreMipmapLimit: 0
|
|
32
|
+
grayScaleToAlpha: 0
|
|
33
|
+
generateCubemap: 6
|
|
34
|
+
cubemapConvolution: 0
|
|
35
|
+
seamlessCubemap: 0
|
|
36
|
+
textureFormat: 1
|
|
37
|
+
maxTextureSize: 2048
|
|
38
|
+
textureSettings:
|
|
39
|
+
serializedVersion: 2
|
|
40
|
+
filterMode: 1
|
|
41
|
+
aniso: 1
|
|
42
|
+
mipBias: 0
|
|
43
|
+
wrapU: 1
|
|
44
|
+
wrapV: 1
|
|
45
|
+
wrapW: 1
|
|
46
|
+
nPOTScale: 0
|
|
47
|
+
lightmap: 0
|
|
48
|
+
compressionQuality: 50
|
|
49
|
+
spriteMode: 1
|
|
50
|
+
spriteExtrude: 1
|
|
51
|
+
spriteMeshType: 1
|
|
52
|
+
alignment: 0
|
|
53
|
+
spritePivot: {x: 0.5, y: 0.5}
|
|
54
|
+
spritePixelsToUnits: 100
|
|
55
|
+
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
|
56
|
+
spriteGenerateFallbackPhysicsShape: 1
|
|
57
|
+
alphaUsage: 1
|
|
58
|
+
alphaIsTransparency: 1
|
|
59
|
+
spriteTessellationDetail: -1
|
|
60
|
+
textureType: 8
|
|
61
|
+
textureShape: 1
|
|
62
|
+
singleChannelComponent: 0
|
|
63
|
+
flipbookRows: 1
|
|
64
|
+
flipbookColumns: 1
|
|
65
|
+
maxTextureSizeSet: 0
|
|
66
|
+
compressionQualitySet: 0
|
|
67
|
+
textureFormatSet: 0
|
|
68
|
+
ignorePngGamma: 0
|
|
69
|
+
applyGammaDecoding: 0
|
|
70
|
+
swizzle: 50462976
|
|
71
|
+
cookieLightType: 0
|
|
72
|
+
platformSettings:
|
|
73
|
+
- serializedVersion: 4
|
|
74
|
+
buildTarget: DefaultTexturePlatform
|
|
75
|
+
maxTextureSize: 256
|
|
76
|
+
resizeAlgorithm: 0
|
|
77
|
+
textureFormat: -1
|
|
78
|
+
textureCompression: 1
|
|
79
|
+
compressionQuality: 50
|
|
80
|
+
crunchedCompression: 1
|
|
81
|
+
allowsAlphaSplitting: 0
|
|
82
|
+
overridden: 0
|
|
83
|
+
ignorePlatformSupport: 0
|
|
84
|
+
androidETC2FallbackOverride: 0
|
|
85
|
+
forceMaximumCompressionQuality_BC6H_BC7: 0
|
|
86
|
+
- serializedVersion: 4
|
|
87
|
+
buildTarget: Standalone
|
|
88
|
+
maxTextureSize: 2048
|
|
89
|
+
resizeAlgorithm: 0
|
|
90
|
+
textureFormat: -1
|
|
91
|
+
textureCompression: 1
|
|
92
|
+
compressionQuality: 50
|
|
93
|
+
crunchedCompression: 0
|
|
94
|
+
allowsAlphaSplitting: 0
|
|
95
|
+
overridden: 0
|
|
96
|
+
ignorePlatformSupport: 0
|
|
97
|
+
androidETC2FallbackOverride: 0
|
|
98
|
+
forceMaximumCompressionQuality_BC6H_BC7: 0
|
|
99
|
+
- serializedVersion: 4
|
|
100
|
+
buildTarget: Android
|
|
101
|
+
maxTextureSize: 2048
|
|
102
|
+
resizeAlgorithm: 0
|
|
103
|
+
textureFormat: -1
|
|
104
|
+
textureCompression: 1
|
|
105
|
+
compressionQuality: 50
|
|
106
|
+
crunchedCompression: 0
|
|
107
|
+
allowsAlphaSplitting: 0
|
|
108
|
+
overridden: 0
|
|
109
|
+
ignorePlatformSupport: 0
|
|
110
|
+
androidETC2FallbackOverride: 0
|
|
111
|
+
forceMaximumCompressionQuality_BC6H_BC7: 0
|
|
112
|
+
- serializedVersion: 4
|
|
113
|
+
buildTarget: WebGL
|
|
114
|
+
maxTextureSize: 2048
|
|
115
|
+
resizeAlgorithm: 0
|
|
116
|
+
textureFormat: -1
|
|
117
|
+
textureCompression: 1
|
|
118
|
+
compressionQuality: 50
|
|
119
|
+
crunchedCompression: 0
|
|
120
|
+
allowsAlphaSplitting: 0
|
|
121
|
+
overridden: 0
|
|
122
|
+
ignorePlatformSupport: 0
|
|
123
|
+
androidETC2FallbackOverride: 0
|
|
124
|
+
forceMaximumCompressionQuality_BC6H_BC7: 0
|
|
125
|
+
spriteSheet:
|
|
126
|
+
serializedVersion: 2
|
|
127
|
+
sprites:
|
|
128
|
+
- serializedVersion: 2
|
|
129
|
+
name: Group-1_0
|
|
130
|
+
rect:
|
|
131
|
+
serializedVersion: 2
|
|
132
|
+
x: 0
|
|
133
|
+
y: 0
|
|
134
|
+
width: 47
|
|
135
|
+
height: 16
|
|
136
|
+
alignment: 0
|
|
137
|
+
pivot: {x: 0, y: 0}
|
|
138
|
+
border: {x: 0, y: 0, z: 0, w: 0}
|
|
139
|
+
customData:
|
|
140
|
+
outline: []
|
|
141
|
+
physicsShape: []
|
|
142
|
+
tessellationDetail: -1
|
|
143
|
+
bones: []
|
|
144
|
+
spriteID: a025ce7fc8e3ec8e0800000000000000
|
|
145
|
+
internalID: -1671329636532071926
|
|
146
|
+
vertices: []
|
|
147
|
+
indices:
|
|
148
|
+
edges: []
|
|
149
|
+
weights: []
|
|
150
|
+
outline: []
|
|
151
|
+
customData:
|
|
152
|
+
physicsShape: []
|
|
153
|
+
bones: []
|
|
154
|
+
spriteID: 5e97eb03825dee720800000000000000
|
|
155
|
+
internalID: 0
|
|
156
|
+
vertices: []
|
|
157
|
+
indices:
|
|
158
|
+
edges: []
|
|
159
|
+
weights: []
|
|
160
|
+
secondaryTextures: []
|
|
161
|
+
spriteCustomMetadata:
|
|
162
|
+
entries: []
|
|
163
|
+
nameFileIdTable:
|
|
164
|
+
Group-1_0: -1671329636532071926
|
|
165
|
+
mipmapLimitGroupName:
|
|
166
|
+
pSDRemoveMatte: 0
|
|
167
|
+
userData:
|
|
168
|
+
assetBundleName:
|
|
169
|
+
assetBundleVariant:
|