forfeiture, abandoning, entry_fee_collection at start
This commit is contained in:
Vendored
+3
-3
@@ -60,11 +60,11 @@
|
|||||||
"*.asset": "yaml",
|
"*.asset": "yaml",
|
||||||
"*.meta": "yaml",
|
"*.meta": "yaml",
|
||||||
"*.prefab": "yaml",
|
"*.prefab": "yaml",
|
||||||
"*.unity": "yaml",
|
"*.unity": "yaml"
|
||||||
},
|
},
|
||||||
"explorer.fileNesting.enabled": true,
|
"explorer.fileNesting.enabled": true,
|
||||||
"explorer.fileNesting.patterns": {
|
"explorer.fileNesting.patterns": {
|
||||||
"*.sln": "*.csproj",
|
"*.sln": "*.csproj"
|
||||||
},
|
},
|
||||||
"dotnet.defaultSolution": "WalkInvest_Soccer.sln"
|
"dotnet.defaultSolution": "soccar2d.sln"
|
||||||
}
|
}
|
||||||
@@ -14,7 +14,8 @@ public class CupidConnector : MonoBehaviour
|
|||||||
//Server code
|
//Server code
|
||||||
string[] args = Environment.GetCommandLineArgs();
|
string[] args = Environment.GetCommandLineArgs();
|
||||||
int matchId = 0;
|
int matchId = 0;
|
||||||
string dedicatedSecret = "38516e39d3406225b7c3015a66e5d25c54e9b2024c0755212122bdcea3e3a328";
|
string dedicatedSecret = null;
|
||||||
|
bool dedicatedSecretFromCli = false;
|
||||||
string internalApiBase = null;
|
string internalApiBase = null;
|
||||||
for (int i = 0; i < args.Length; i++)
|
for (int i = 0; i < args.Length; i++)
|
||||||
{
|
{
|
||||||
@@ -28,12 +29,21 @@ public class CupidConnector : MonoBehaviour
|
|||||||
|| string.Equals(args[i], "-matchid", StringComparison.OrdinalIgnoreCase))
|
|| string.Equals(args[i], "-matchid", StringComparison.OrdinalIgnoreCase))
|
||||||
int.TryParse(args[i + 1], out matchId);
|
int.TryParse(args[i + 1], out matchId);
|
||||||
else if (string.Equals(args[i], "-dedicatedSecret", StringComparison.OrdinalIgnoreCase))
|
else if (string.Equals(args[i], "-dedicatedSecret", StringComparison.OrdinalIgnoreCase))
|
||||||
|
{
|
||||||
dedicatedSecret = args[i + 1];
|
dedicatedSecret = args[i + 1];
|
||||||
|
dedicatedSecretFromCli = true;
|
||||||
|
}
|
||||||
else if (string.Equals(args[i], "-internalApiBase", StringComparison.OrdinalIgnoreCase))
|
else if (string.Equals(args[i], "-internalApiBase", StringComparison.OrdinalIgnoreCase))
|
||||||
internalApiBase = args[i + 1];
|
internalApiBase = args[i + 1];
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
GameManager.ConfigureDedicatedMatchReporting(matchId);
|
if (!dedicatedSecretFromCli)
|
||||||
|
{
|
||||||
|
string envSecret = Environment.GetEnvironmentVariable("DEDICATED_SERVER_SECRET");
|
||||||
|
if (!string.IsNullOrEmpty(envSecret))
|
||||||
|
dedicatedSecret = envSecret;
|
||||||
|
}
|
||||||
|
GameManager.ConfigureDedicatedMatchReporting(matchId, dedicatedSecret, internalApiBase);
|
||||||
#if UNITY_EDITOR
|
#if UNITY_EDITOR
|
||||||
Logger.Log("Editor mode, skipping arg check");
|
Logger.Log("Editor mode, skipping arg check");
|
||||||
Cupid.RoomPort = 7777;
|
Cupid.RoomPort = 7777;
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
Binary file not shown.
@@ -777,6 +777,66 @@ MonoBehaviour:
|
|||||||
m_XAdvance: 0
|
m_XAdvance: 0
|
||||||
m_YAdvance: 0
|
m_YAdvance: 0
|
||||||
m_FeatureLookupFlags: 1504773
|
m_FeatureLookupFlags: 1504773
|
||||||
|
- m_FirstAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 10
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: -5.8500004
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_SecondAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 5
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_FeatureLookupFlags: 2038298
|
||||||
|
- m_FirstAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 10
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: -1.08
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_SecondAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 14
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_FeatureLookupFlags: 2038298
|
||||||
|
- m_FirstAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 10
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: -5.8500004
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_SecondAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 31
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_FeatureLookupFlags: 2038298
|
||||||
|
- m_FirstAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 10
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: -1.08
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_SecondAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 40
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_FeatureLookupFlags: 2038298
|
||||||
- m_FirstAdjustmentRecord:
|
- m_FirstAdjustmentRecord:
|
||||||
m_GlyphIndex: 12
|
m_GlyphIndex: 12
|
||||||
m_GlyphValueRecord:
|
m_GlyphValueRecord:
|
||||||
@@ -4137,6 +4197,66 @@ MonoBehaviour:
|
|||||||
m_XAdvance: 0
|
m_XAdvance: 0
|
||||||
m_YAdvance: 0
|
m_YAdvance: 0
|
||||||
m_FeatureLookupFlags: 10188005
|
m_FeatureLookupFlags: 10188005
|
||||||
|
- m_FirstAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 36
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: -5.8500004
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_SecondAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 5
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_FeatureLookupFlags: 2038298
|
||||||
|
- m_FirstAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 36
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: -1.08
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_SecondAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 14
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_FeatureLookupFlags: 2038298
|
||||||
|
- m_FirstAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 36
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: -5.8500004
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_SecondAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 31
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_FeatureLookupFlags: 2038298
|
||||||
|
- m_FirstAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 36
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: -1.08
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_SecondAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 40
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_FeatureLookupFlags: 2038298
|
||||||
- m_FirstAdjustmentRecord:
|
- m_FirstAdjustmentRecord:
|
||||||
m_GlyphIndex: 38
|
m_GlyphIndex: 38
|
||||||
m_GlyphValueRecord:
|
m_GlyphValueRecord:
|
||||||
@@ -6897,6 +7017,216 @@ MonoBehaviour:
|
|||||||
m_XAdvance: 0
|
m_XAdvance: 0
|
||||||
m_YAdvance: 0
|
m_YAdvance: 0
|
||||||
m_FeatureLookupFlags: 10188005
|
m_FeatureLookupFlags: 10188005
|
||||||
|
- m_FirstAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 55
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: -6.6600003
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_SecondAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 5
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_FeatureLookupFlags: 11484403
|
||||||
|
- m_FirstAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 55
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: -4.23
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_SecondAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 7
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_FeatureLookupFlags: 11484403
|
||||||
|
- m_FirstAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 55
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: -4.23
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_SecondAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 11
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_FeatureLookupFlags: 11484403
|
||||||
|
- m_FirstAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 55
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: -5.8500004
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_SecondAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 14
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_FeatureLookupFlags: 11484403
|
||||||
|
- m_FirstAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 55
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: -3.42
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_SecondAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 19
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_FeatureLookupFlags: 11484403
|
||||||
|
- m_FirstAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 55
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: -3.42
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_SecondAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 21
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_FeatureLookupFlags: 11484403
|
||||||
|
- m_FirstAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 55
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: -3.6000001
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_SecondAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 23
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_FeatureLookupFlags: 11484403
|
||||||
|
- m_FirstAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 55
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: -6.6600003
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_SecondAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 31
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_FeatureLookupFlags: 11484403
|
||||||
|
- m_FirstAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 55
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: -4.23
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_SecondAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 33
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_FeatureLookupFlags: 11484403
|
||||||
|
- m_FirstAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 55
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: -4.23
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_SecondAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 37
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_FeatureLookupFlags: 11484403
|
||||||
|
- m_FirstAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 55
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: -5.8500004
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_SecondAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 40
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_FeatureLookupFlags: 11484403
|
||||||
|
- m_FirstAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 55
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: -3.42
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_SecondAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 45
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_FeatureLookupFlags: 11484403
|
||||||
|
- m_FirstAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 55
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: -3.42
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_SecondAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 47
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_FeatureLookupFlags: 11484403
|
||||||
|
- m_FirstAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 55
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: -3.6000001
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_SecondAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 49
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_FeatureLookupFlags: 11484403
|
||||||
- m_FirstAdjustmentRecord:
|
- m_FirstAdjustmentRecord:
|
||||||
m_GlyphIndex: 56
|
m_GlyphIndex: 56
|
||||||
m_GlyphValueRecord:
|
m_GlyphValueRecord:
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
+3
-148
@@ -1,149 +1,4 @@
|
|||||||
Logger initiated at 7/29/2026 1:21:58 PM
|
Logger initiated at 8/13/2026 9:30:04 PM
|
||||||
|
|
||||||
[7/29/2026 1:21:58 PM] Cupid settings updated
|
[8/13/2026 9:30:04 PM] Cupid settings updated
|
||||||
[7/29/2026 1:21:58 PM] Cupid settings updated
|
[8/13/2026 9:30:04 PM] Cupid settings updated
|
||||||
[7/29/2026 1:22:00 PM] Starting matchmake as warlock
|
|
||||||
[7/29/2026 1:22:02 PM] Got into a room
|
|
||||||
[7/29/2026 1:22:02 PM] {"ok":true,"entry_fee":21,"rc_prize":34,"for_red":{"Players":[{"Name":"choel","LastSeen":1785311520437,"UserId":9,"l10_wins":7,"l10_losses":0},{"Name":"warlock","LastSeen":1785311520886,"UserId":2,"l10_wins":8,"l10_losses":2}],"GameName":"soccar","Port":26815,"InitTime":1785311520437,"entry_fee":21,"match_id":535,"instance_started":true,"rc_prize":34,"your_team":"red"},"for_blue":{"Players":[{"Name":"choel","LastSeen":1785311520437,"UserId":9,"l10_wins":7,"l10_losses":0},{"Name":"warlock","LastSeen":1785311520886,"UserId":2,"l10_wins":8,"l10_losses":2}],"GameName":"soccar","Port":26815,"InitTime":1785311520437,"entry_fee":21,"match_id":535,"instance_started":true,"rc_prize":34,"your_team":"blue"}}
|
|
||||||
[7/29/2026 1:22:02 PM] Configured dedicated match reporting for match id 535 with secret 38516e39d3406225b7c3015a66e5d25c54e9b2024c0755212122bdcea3e3a328 and internal api base https://kkapi.playpoolstudios.com
|
|
||||||
[7/29/2026 1:22:02 PM] Setting cupid to load game scene
|
|
||||||
[7/29/2026 1:22:02 PM] Loading game scene
|
|
||||||
[7/29/2026 1:22:07 PM] Starting client at $kkapi.playpoolstudios.com:26815
|
|
||||||
[7/29/2026 1:22:07 PM] Client connected
|
|
||||||
[7/29/2026 1:22:14 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:22:19 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:22:26 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:22:30 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:22:34 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:22:37 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:22:44 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:22:48 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:22:53 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:22:57 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:23:01 PM] Score changed from 0 to 1
|
|
||||||
[7/29/2026 1:23:04 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:23:11 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:23:19 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:23:24 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:23:30 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:23:35 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:23:42 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:23:46 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:23:55 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:23:59 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:24:07 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:24:10 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:24:19 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:24:24 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:24:30 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:24:36 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:24:44 PM] Score changed from 1 to 2
|
|
||||||
[7/29/2026 1:24:48 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:24:52 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:24:58 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:25:04 PM] Score changed from 0 to 1
|
|
||||||
[7/29/2026 1:25:07 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:25:16 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:25:18 PM] Score changed from 1 to 2
|
|
||||||
[7/29/2026 1:25:21 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:25:27 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:25:34 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:25:40 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:25:45 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:25:56 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:26:00 PM] Score changed from 2 to 3
|
|
||||||
[7/29/2026 1:26:11 PM] Configured dedicated match reporting for match id 536 with secret 38516e39d3406225b7c3015a66e5d25c54e9b2024c0755212122bdcea3e3a328 and internal api base https://kkapi.playpoolstudios.com
|
|
||||||
[7/29/2026 1:26:11 PM] Client disconnected
|
|
||||||
[7/29/2026 1:26:15 PM] Starting client at $kkapi.playpoolstudios.com:26172
|
|
||||||
[7/29/2026 1:26:15 PM] Client connected
|
|
||||||
[7/29/2026 1:26:20 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:26:25 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:26:33 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:26:37 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:26:48 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:26:56 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:27:03 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:27:09 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:27:14 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:27:24 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:27:32 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:27:37 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:27:45 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:27:49 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:27:55 PM] Score changed from 0 to 1
|
|
||||||
[7/29/2026 1:27:58 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:28:02 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:28:08 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:28:15 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:28:23 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:28:28 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:28:35 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:28:39 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:28:52 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:28:55 PM] Score changed from 0 to 1
|
|
||||||
[7/29/2026 1:28:58 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:29:06 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:29:14 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:29:18 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:29:23 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:29:32 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:29:36 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:29:42 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:29:46 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:29:52 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:29:56 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:30:11 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:30:16 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:30:21 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:30:27 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:30:30 PM] Score changed from 1 to 2
|
|
||||||
[7/29/2026 1:30:33 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:30:40 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:30:45 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:30:50 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:30:55 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:31:01 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:31:03 PM] Score changed from 2 to 3
|
|
||||||
[7/29/2026 1:31:24 PM] Configured dedicated match reporting for match id 537 with secret 38516e39d3406225b7c3015a66e5d25c54e9b2024c0755212122bdcea3e3a328 and internal api base https://kkapi.playpoolstudios.com
|
|
||||||
[7/29/2026 1:31:24 PM] Client disconnected
|
|
||||||
[7/29/2026 1:31:28 PM] Starting client at $kkapi.playpoolstudios.com:26149
|
|
||||||
[7/29/2026 1:31:28 PM] Client connected
|
|
||||||
[7/29/2026 1:31:33 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:31:37 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:31:41 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:31:45 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:31:50 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:31:54 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:32:05 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:32:12 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:32:18 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:32:25 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:32:32 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:32:38 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:32:44 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:32:56 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:33:04 PM] Score changed from 0 to 1
|
|
||||||
[7/29/2026 1:33:07 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:33:16 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:33:22 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:33:31 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:33:40 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:33:43 PM] Score changed from 0 to 1
|
|
||||||
[7/29/2026 1:33:46 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:33:52 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:33:58 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:34:04 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:34:11 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:34:16 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:34:22 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:34:30 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:34:34 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:34:39 PM] Score changed from 1 to 2
|
|
||||||
[7/29/2026 1:34:42 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:34:47 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:34:54 PM] Selected team changed from Red to Blue
|
|
||||||
[7/29/2026 1:34:58 PM] Selected team changed from Blue to Red
|
|
||||||
[7/29/2026 1:35:12 PM] Score changed from 2 to 3
|
|
||||||
[7/29/2026 1:35:21 PM] Client disconnected
|
|
||||||
[7/29/2026 1:35:23 PM] Cupid settings updated
|
|
||||||
[7/29/2026 1:35:23 PM] Cupid settings updated
|
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 4590b1d665d10c64a8174323d734b971
|
||||||
|
TextScriptImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
[8/13/2026 7:50:10 PM] ReplayRecorder started (practice) id -1786630810 with 11 entities
|
||||||
|
[8/13/2026 7:50:10 PM] Client connected
|
||||||
|
[8/13/2026 7:50:10 PM] Dedicated join: team assigned Blue isServer=True matchId=0 secretEmpty=False redJoin=False blueJoin=False collected=False
|
||||||
|
[8/13/2026 7:50:10 PM] Dedicated join: skipping PATCH (matchId=0, secretEmpty=False)
|
||||||
|
[8/13/2026 7:50:10 PM] Selected team changed from Red to Blue
|
||||||
|
[8/13/2026 7:50:27 PM] Match: Blue skipped turn (1/2)
|
||||||
|
[8/13/2026 7:50:27 PM] Selected team changed from Blue to Red
|
||||||
|
[8/13/2026 7:50:29 PM] Dedicated match: Blue disconnected (order count=1)
|
||||||
|
[8/13/2026 7:50:29 PM] Mirror server: client disconnected (connId=0)
|
||||||
|
[8/13/2026 7:50:29 PM] Client disconnected
|
||||||
|
[8/13/2026 7:50:29 PM] ReplayRecorder wrote F:/Projects/Unity/soccar2d/Assets\Logs\-1786630810.json (951 frames, 0 events, duration 19.02s)
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 13e09da064f35f74b83f6ed19880c04d
|
||||||
|
TextScriptImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 084e9b7d2b988a34eb1c0aed4752ee16
|
||||||
|
TextScriptImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,17 @@
|
|||||||
|
[8/13/2026 8:43:35 PM] ReplayRecorder started (practice) id -1786634015 with 11 entities
|
||||||
|
[8/13/2026 8:43:35 PM] Client connected
|
||||||
|
[8/13/2026 8:43:35 PM] Dedicated join: team assigned Blue isServer=True matchId=0 secretEmpty=False redJoin=False blueJoin=False collected=False
|
||||||
|
[8/13/2026 8:43:35 PM] Dedicated join: skipping PATCH (matchId=0, secretEmpty=False)
|
||||||
|
[8/13/2026 8:43:35 PM] Selected team changed from Red to Blue
|
||||||
|
[8/13/2026 8:43:52 PM] Match: Blue skipped turn (1/2)
|
||||||
|
[8/13/2026 8:43:52 PM] Selected team changed from Blue to Red
|
||||||
|
[8/13/2026 8:43:55 PM] AI best puck Puck: total=3.04 (prox=0.85, between=0.03, traj=0.70, push=1.00)
|
||||||
|
[8/13/2026 8:43:55 PM] force = 70 * 0.9010412 = 63.07288
|
||||||
|
[8/13/2026 8:43:55 PM] launching puck at (0.00, -4.00) with (0.00, 252.29) force
|
||||||
|
[8/13/2026 8:43:58 PM] Selected team changed from Red to Blue
|
||||||
|
[8/13/2026 8:44:05 PM] force = 70 * 0.9955804 = 69.69063
|
||||||
|
[8/13/2026 8:44:05 PM] launching puck at (-0.77, 4.94) with (53.42, -344.33) force
|
||||||
|
[8/13/2026 8:44:08 PM] Dedicated match: Blue disconnected (order count=1)
|
||||||
|
[8/13/2026 8:44:08 PM] Mirror server: client disconnected (connId=0)
|
||||||
|
[8/13/2026 8:44:08 PM] Client disconnected
|
||||||
|
[8/13/2026 8:44:08 PM] ReplayRecorder wrote F:/Projects/Unity/soccar2d/Assets\Logs\-1786634015.json (1638 frames, 6 events, duration 32.76s)
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a085b5292682b144dacde97500667411
|
||||||
|
TextScriptImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
File diff suppressed because one or more lines are too long
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 48b08b67d9b52ad4c9484786cf2ec2e1
|
||||||
|
TextScriptImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,24 @@
|
|||||||
|
[8/13/2026 8:49:52 PM] ReplayRecorder started (practice) id -1786634392 with 11 entities
|
||||||
|
[8/13/2026 8:49:52 PM] Client connected
|
||||||
|
[8/13/2026 8:49:53 PM] Dedicated join: team assigned Blue isServer=True matchId=0 secretEmpty=False redJoin=False blueJoin=False collected=False
|
||||||
|
[8/13/2026 8:49:53 PM] Dedicated join: skipping PATCH (matchId=0, secretEmpty=False)
|
||||||
|
[8/13/2026 8:49:53 PM] Selected team changed from Red to Blue
|
||||||
|
[8/13/2026 8:50:09 PM] Selected team changed from Blue to Red
|
||||||
|
[8/13/2026 8:50:12 PM] AI best puck Puck: total=3.04 (prox=0.85, between=0.03, traj=0.70, push=1.00)
|
||||||
|
[8/13/2026 8:50:12 PM] force = 70 * 0.9010412 = 63.07288
|
||||||
|
[8/13/2026 8:50:12 PM] launching puck at (0.00, -4.00) with (0.00, 252.29) force
|
||||||
|
[8/13/2026 8:50:15 PM] Selected team changed from Red to Blue
|
||||||
|
[8/13/2026 8:50:33 PM] Selected team changed from Blue to Red
|
||||||
|
[8/13/2026 8:50:35 PM] AI best puck Puck: total=1.73 (prox=0.93, between=0.03, traj=0.00, push=1.00)
|
||||||
|
[8/13/2026 8:50:35 PM] force = 70 * 0.9010412 = 63.07288
|
||||||
|
[8/13/2026 8:50:35 PM] launching puck at (0.00, -4.00) with (0.00, 252.29) force
|
||||||
|
[8/13/2026 8:50:38 PM] Selected team changed from Red to Blue
|
||||||
|
[8/13/2026 8:50:53 PM] Selected team changed from Blue to Red
|
||||||
|
[8/13/2026 8:50:55 PM] AI best puck Puck: total=1.73 (prox=0.94, between=0.03, traj=0.00, push=1.00)
|
||||||
|
[8/13/2026 8:50:55 PM] force = 70 * 0.9010412 = 63.07288
|
||||||
|
[8/13/2026 8:50:55 PM] launching puck at (0.00, -4.00) with (0.00, 252.29) force
|
||||||
|
[8/13/2026 8:50:57 PM] Selected team changed from Red to Blue
|
||||||
|
[8/13/2026 8:51:00 PM] Dedicated match: Blue disconnected (order count=1)
|
||||||
|
[8/13/2026 8:51:00 PM] Mirror server: client disconnected (connId=0)
|
||||||
|
[8/13/2026 8:51:00 PM] Client disconnected
|
||||||
|
[8/13/2026 8:51:00 PM] ReplayRecorder wrote F:/Projects/Unity/soccar2d/Assets\Logs\-1786634392.json (3373 frames, 15 events, duration 67.46s)
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ecdf112848437a94b8bc3ad0bb197473
|
||||||
|
TextScriptImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -416,3 +416,19 @@
|
|||||||
[7/19/2026 12:42:42 AM] Failed to fetch red and blue names, isServer?
|
[7/19/2026 12:42:42 AM] Failed to fetch red and blue names, isServer?
|
||||||
[7/19/2026 12:42:42 AM] Starting auto close watchdog
|
[7/19/2026 12:42:42 AM] Starting auto close watchdog
|
||||||
[7/19/2026 12:42:42 AM] Active player connections: 0
|
[7/19/2026 12:42:42 AM] Active player connections: 0
|
||||||
|
[8/13/2026 2:36:25 PM] Starting server at port 7777
|
||||||
|
[8/13/2026 2:36:25 PM] Mirror server exception logging enabled
|
||||||
|
[8/13/2026 2:36:25 PM] Failed to fetch red and blue names, isServer?
|
||||||
|
[8/13/2026 2:36:25 PM] Starting auto close watchdog
|
||||||
|
[8/13/2026 2:36:25 PM] Active player connections: 0
|
||||||
|
[8/13/2026 3:56:45 PM] Starting server at port 7777
|
||||||
|
[8/13/2026 3:56:45 PM] Mirror server exception logging enabled
|
||||||
|
[8/13/2026 3:56:45 PM] Failed to fetch red and blue names, isServer?
|
||||||
|
[8/13/2026 3:56:45 PM] Starting auto close watchdog
|
||||||
|
[8/13/2026 3:56:45 PM] Active player connections: 0
|
||||||
|
[8/13/2026 3:56:52 PM] Server will be closed due to no players in, 60
|
||||||
|
[8/13/2026 9:06:10 PM] Starting server at port 7777
|
||||||
|
[8/13/2026 9:06:10 PM] Mirror server exception logging enabled
|
||||||
|
[8/13/2026 9:06:10 PM] Failed to fetch red and blue names, isServer?
|
||||||
|
[8/13/2026 9:06:10 PM] Starting auto close watchdog
|
||||||
|
[8/13/2026 9:06:10 PM] Active player connections: 0
|
||||||
|
|||||||
@@ -14,8 +14,6 @@ GameObject:
|
|||||||
- component: {fileID: 9033708766278989701}
|
- component: {fileID: 9033708766278989701}
|
||||||
- component: {fileID: 2872566638177417579}
|
- component: {fileID: 2872566638177417579}
|
||||||
- component: {fileID: 407622981302802273}
|
- component: {fileID: 407622981302802273}
|
||||||
- component: {fileID: 969959851011469098}
|
|
||||||
- component: {fileID: 2978779054327924816}
|
|
||||||
m_Layer: 5
|
m_Layer: 5
|
||||||
m_Name: text_emote_prefab
|
m_Name: text_emote_prefab
|
||||||
m_TagString: Untagged
|
m_TagString: Untagged
|
||||||
@@ -165,34 +163,6 @@ MonoBehaviour:
|
|||||||
m_OnClick:
|
m_OnClick:
|
||||||
m_PersistentCalls:
|
m_PersistentCalls:
|
||||||
m_Calls: []
|
m_Calls: []
|
||||||
--- !u!114 &969959851011469098
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 4492919853174754762}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: d0b148fe25e99eb48b9724523833bab1, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
m_Delegates: []
|
|
||||||
--- !u!114 &2978779054327924816
|
|
||||||
MonoBehaviour:
|
|
||||||
m_ObjectHideFlags: 0
|
|
||||||
m_CorrespondingSourceObject: {fileID: 0}
|
|
||||||
m_PrefabInstance: {fileID: 0}
|
|
||||||
m_PrefabAsset: {fileID: 0}
|
|
||||||
m_GameObject: {fileID: 4492919853174754762}
|
|
||||||
m_Enabled: 1
|
|
||||||
m_EditorHideFlags: 0
|
|
||||||
m_Script: {fileID: 11500000, guid: 4e4c65221cd965e45853c892a9facd82, type: 3}
|
|
||||||
m_Name:
|
|
||||||
m_EditorClassIdentifier:
|
|
||||||
scaleFactor: 1.1
|
|
||||||
duration: 0.1
|
|
||||||
ease: 27
|
|
||||||
--- !u!1 &4797427416459394329
|
--- !u!1 &4797427416459394329
|
||||||
GameObject:
|
GameObject:
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
@@ -225,10 +195,10 @@ RectTransform:
|
|||||||
m_Children: []
|
m_Children: []
|
||||||
m_Father: {fileID: 1018686033926137723}
|
m_Father: {fileID: 1018686033926137723}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
m_AnchorMin: {x: 0, y: 1}
|
m_AnchorMin: {x: 0, y: 0}
|
||||||
m_AnchorMax: {x: 0, y: 1}
|
m_AnchorMax: {x: 0, y: 0}
|
||||||
m_AnchoredPosition: {x: 78.775, y: -32.235}
|
m_AnchoredPosition: {x: 0, y: 0}
|
||||||
m_SizeDelta: {x: 137.55, y: 44.47}
|
m_SizeDelta: {x: 0, y: 0}
|
||||||
m_Pivot: {x: 0.5, y: 0.5}
|
m_Pivot: {x: 0.5, y: 0.5}
|
||||||
--- !u!222 &101741276978323686
|
--- !u!222 &101741276978323686
|
||||||
CanvasRenderer:
|
CanvasRenderer:
|
||||||
|
|||||||
+1266
-255
File diff suppressed because it is too large
Load Diff
@@ -7909,6 +7909,10 @@ PrefabInstance:
|
|||||||
propertyPath: m_IsActive
|
propertyPath: m_IsActive
|
||||||
value: 0
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3027208764083308819, guid: 169bd8967120a614da3d7b0e9c71557c, type: 3}
|
||||||
|
propertyPath: m_IsActive
|
||||||
|
value: 0
|
||||||
|
objectReference: {fileID: 0}
|
||||||
- target: {fileID: 3465182817620600145, guid: 169bd8967120a614da3d7b0e9c71557c, type: 3}
|
- target: {fileID: 3465182817620600145, guid: 169bd8967120a614da3d7b0e9c71557c, type: 3}
|
||||||
propertyPath: m_AnchorMax.y
|
propertyPath: m_AnchorMax.y
|
||||||
value: 0.5
|
value: 0.5
|
||||||
@@ -7921,6 +7925,10 @@ PrefabInstance:
|
|||||||
propertyPath: m_AnchoredPosition.y
|
propertyPath: m_AnchoredPosition.y
|
||||||
value: 714.47
|
value: 714.47
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 3697438882816933721, guid: 169bd8967120a614da3d7b0e9c71557c, type: 3}
|
||||||
|
propertyPath: redIcon
|
||||||
|
value:
|
||||||
|
objectReference: {fileID: 7609527126711406816, guid: 532bcbd7fabd63844ac75765ae25dcb9, type: 3}
|
||||||
- target: {fileID: 3749771552368919126, guid: 169bd8967120a614da3d7b0e9c71557c, type: 3}
|
- target: {fileID: 3749771552368919126, guid: 169bd8967120a614da3d7b0e9c71557c, type: 3}
|
||||||
propertyPath: m_Sprite
|
propertyPath: m_Sprite
|
||||||
value:
|
value:
|
||||||
@@ -7929,6 +7937,14 @@ PrefabInstance:
|
|||||||
propertyPath: m_AnchoredPosition.y
|
propertyPath: m_AnchoredPosition.y
|
||||||
value: -289
|
value: -289
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 4545260003495756882, guid: 169bd8967120a614da3d7b0e9c71557c, type: 3}
|
||||||
|
propertyPath: m_IsActive
|
||||||
|
value: 1
|
||||||
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 5669134292471989017, guid: 169bd8967120a614da3d7b0e9c71557c, type: 3}
|
||||||
|
propertyPath: m_Sprite
|
||||||
|
value:
|
||||||
|
objectReference: {fileID: 8390053243822926539, guid: 5b969ed0d82676d4890df6c74fd6f3c4, type: 3}
|
||||||
- target: {fileID: 6417757714012981459, guid: 169bd8967120a614da3d7b0e9c71557c, type: 3}
|
- target: {fileID: 6417757714012981459, guid: 169bd8967120a614da3d7b0e9c71557c, type: 3}
|
||||||
propertyPath: m_Pivot.x
|
propertyPath: m_Pivot.x
|
||||||
value: 0
|
value: 0
|
||||||
@@ -8025,6 +8041,10 @@ PrefabInstance:
|
|||||||
propertyPath: m_IsActive
|
propertyPath: m_IsActive
|
||||||
value: 0
|
value: 0
|
||||||
objectReference: {fileID: 0}
|
objectReference: {fileID: 0}
|
||||||
|
- target: {fileID: 6864964370409994597, guid: 169bd8967120a614da3d7b0e9c71557c, type: 3}
|
||||||
|
propertyPath: m_Sprite
|
||||||
|
value:
|
||||||
|
objectReference: {fileID: 8390053243822926539, guid: 5b969ed0d82676d4890df6c74fd6f3c4, type: 3}
|
||||||
- target: {fileID: 8202105634251418107, guid: 169bd8967120a614da3d7b0e9c71557c, type: 3}
|
- target: {fileID: 8202105634251418107, guid: 169bd8967120a614da3d7b0e9c71557c, type: 3}
|
||||||
propertyPath: m_AnchorMax.y
|
propertyPath: m_AnchorMax.y
|
||||||
value: 0.5
|
value: 0.5
|
||||||
|
|||||||
+2388
-34
File diff suppressed because it is too large
Load Diff
@@ -46,7 +46,12 @@ public class AiBotController : NetworkBehaviour
|
|||||||
|
|
||||||
void Awake()
|
void Awake()
|
||||||
{
|
{
|
||||||
|
#if UNITY_SERVER
|
||||||
|
enabled = false;
|
||||||
|
return;
|
||||||
|
#else
|
||||||
EnsureTrajectoryLines();
|
EnsureTrajectoryLines();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnEnable()
|
void OnEnable()
|
||||||
@@ -100,6 +105,10 @@ public class AiBotController : NetworkBehaviour
|
|||||||
return existingLine;
|
return existingLine;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Shader shader = Shader.Find("Sprites/Default");
|
||||||
|
if (shader == null)
|
||||||
|
return null;
|
||||||
|
|
||||||
GameObject go = new GameObject(name);
|
GameObject go = new GameObject(name);
|
||||||
go.transform.SetParent(transform, false);
|
go.transform.SetParent(transform, false);
|
||||||
|
|
||||||
@@ -109,7 +118,7 @@ public class AiBotController : NetworkBehaviour
|
|||||||
line.endWidth = trajectoryLineWidth;
|
line.endWidth = trajectoryLineWidth;
|
||||||
line.numCapVertices = 4;
|
line.numCapVertices = 4;
|
||||||
line.sortingOrder = trajectorySortingOrder;
|
line.sortingOrder = trajectorySortingOrder;
|
||||||
line.material = new Material(Shader.Find("Sprites/Default"));
|
line.material = new Material(shader);
|
||||||
line.startColor = color;
|
line.startColor = color;
|
||||||
line.endColor = color;
|
line.endColor = color;
|
||||||
line.positionCount = 0;
|
line.positionCount = 0;
|
||||||
@@ -1066,9 +1075,13 @@ public class AiBotController : NetworkBehaviour
|
|||||||
|
|
||||||
public void Setup(Team team)
|
public void Setup(Team team)
|
||||||
{
|
{
|
||||||
|
#if UNITY_SERVER
|
||||||
|
return;
|
||||||
|
#else
|
||||||
aiTeam = team;
|
aiTeam = team;
|
||||||
RefreshAiPucks();
|
RefreshAiPucks();
|
||||||
isEnabled = true;
|
isEnabled = true;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void RefreshAiPucks()
|
void RefreshAiPucks()
|
||||||
|
|||||||
+54
-3
@@ -15,22 +15,73 @@ public class Ball : NetworkBehaviour
|
|||||||
void Awake()
|
void Awake()
|
||||||
{
|
{
|
||||||
rb = GetComponent<Rigidbody2D>();
|
rb = GetComponent<Rigidbody2D>();
|
||||||
|
col = GetComponent<Collider2D>();
|
||||||
startPosition = transform.position;
|
startPosition = transform.position;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Collider2D col;
|
||||||
|
Coroutine coroutineReset;
|
||||||
|
bool holdingCollisionLock;
|
||||||
|
|
||||||
|
public void SetCollisionsEnabled(bool enabled)
|
||||||
|
{
|
||||||
|
if (col != null)
|
||||||
|
col.enabled = enabled;
|
||||||
|
if (rb != null && !enabled)
|
||||||
|
{
|
||||||
|
rb.linearVelocity = Vector2.zero;
|
||||||
|
rb.angularVelocity = 0f;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void Reset(float duration){
|
public void Reset(float duration){
|
||||||
StartCoroutine(CoroutineReset(duration));
|
if (coroutineReset != null)
|
||||||
|
{
|
||||||
|
StopCoroutine(coroutineReset);
|
||||||
|
RestoreAfterReset();
|
||||||
|
}
|
||||||
|
coroutineReset = StartCoroutine(CoroutineReset(duration));
|
||||||
}
|
}
|
||||||
|
|
||||||
IEnumerator CoroutineReset(float duration){
|
IEnumerator CoroutineReset(float duration){
|
||||||
|
if (GameManager.instance != null)
|
||||||
|
{
|
||||||
|
GameManager.instance.PushResetCollisionLock();
|
||||||
|
holdingCollisionLock = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
rb.linearVelocity = Vector2.zero;
|
||||||
|
rb.angularVelocity = 0f;
|
||||||
|
|
||||||
float t=0;
|
float t=0;
|
||||||
Vector3 pos1 = transform.position;
|
Vector3 pos1 = transform.position;
|
||||||
Quaternion rot1 = transform.rotation;
|
Quaternion rot1 = transform.rotation;
|
||||||
while (t < duration){
|
while (t < duration){
|
||||||
t+=Time.deltaTime;
|
t+=Time.deltaTime;
|
||||||
transform.position = Vector3.Lerp(pos1, startPosition, t / duration);
|
float u = Mathf.Clamp01(t / duration);
|
||||||
transform.rotation = Quaternion.Lerp(rot1, Quaternion.identity, t/duration);
|
transform.position = Vector3.Lerp(pos1, startPosition, u);
|
||||||
|
transform.rotation = Quaternion.Lerp(rot1, Quaternion.identity, u);
|
||||||
yield return null;
|
yield return null;
|
||||||
}
|
}
|
||||||
|
transform.position = startPosition;
|
||||||
|
transform.rotation = Quaternion.identity;
|
||||||
|
|
||||||
|
RestoreAfterReset();
|
||||||
|
}
|
||||||
|
|
||||||
|
void RestoreAfterReset()
|
||||||
|
{
|
||||||
|
if (rb != null)
|
||||||
|
{
|
||||||
|
rb.linearVelocity = Vector2.zero;
|
||||||
|
rb.angularVelocity = 0f;
|
||||||
|
}
|
||||||
|
if (holdingCollisionLock && GameManager.instance != null)
|
||||||
|
{
|
||||||
|
GameManager.instance.PopResetCollisionLock();
|
||||||
|
holdingCollisionLock = false;
|
||||||
|
}
|
||||||
|
coroutineReset = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool touchingB,touchingL,touchingR,touchingT = false;
|
public bool touchingB,touchingL,touchingR,touchingT = false;
|
||||||
|
|||||||
@@ -59,6 +59,8 @@ public class GameCanvas : MonoBehaviour
|
|||||||
public float emojiEmoteDuration = 5f;
|
public float emojiEmoteDuration = 5f;
|
||||||
bool isShowingEmotes=> emotesPanel.gameObject.activeSelf;
|
bool isShowingEmotes=> emotesPanel.gameObject.activeSelf;
|
||||||
|
|
||||||
|
public RectTransform kickWarning;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void Start(){
|
void Start(){
|
||||||
@@ -299,4 +301,17 @@ public class GameCanvas : MonoBehaviour
|
|||||||
timeoutForOpponentPanel.SetActive(false);
|
timeoutForOpponentPanel.SetActive(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void ShowKickWarning(){
|
||||||
|
kickWarning.transform.localScale = new Vector3(0, 0, 0);
|
||||||
|
kickWarning.transform.DOScale(1, 0.2f).SetEase(Ease.OutBack);
|
||||||
|
kickWarning.gameObject.SetActive(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void HideKickWarning(){
|
||||||
|
kickWarning.transform.DOScale(0, 0.2f).SetEase(Ease.InBack).OnComplete(() => {
|
||||||
|
kickWarning.gameObject.SetActive(false);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
+552
-33
@@ -26,7 +26,11 @@ public class GameManager : NetworkBehaviour
|
|||||||
public static void ConfigureDedicatedMatchReporting(int matchId, string secret=null, string internalApiBaseUrl = null)
|
public static void ConfigureDedicatedMatchReporting(int matchId, string secret=null, string internalApiBaseUrl = null)
|
||||||
{
|
{
|
||||||
DedicatedMatchId = matchId;
|
DedicatedMatchId = matchId;
|
||||||
DedicatedMatchSecret = secret ?? "38516e39d3406225b7c3015a66e5d25c54e9b2024c0755212122bdcea3e3a328";
|
if (string.IsNullOrEmpty(secret))
|
||||||
|
secret = Environment.GetEnvironmentVariable("DEDICATED_SERVER_SECRET");
|
||||||
|
DedicatedMatchSecret = string.IsNullOrEmpty(secret)
|
||||||
|
? "38516e39d3406225b7c3015a66e5d25c54e9b2024c0755212122bdcea3e3a328"
|
||||||
|
: secret;
|
||||||
if (!string.IsNullOrWhiteSpace(internalApiBaseUrl))
|
if (!string.IsNullOrWhiteSpace(internalApiBaseUrl))
|
||||||
DedicatedInternalApiBase = internalApiBaseUrl.TrimEnd('/');
|
DedicatedInternalApiBase = internalApiBaseUrl.TrimEnd('/');
|
||||||
|
|
||||||
@@ -136,16 +140,26 @@ public class GameManager : NetworkBehaviour
|
|||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>Sets match <c>status</c> to <c>-1</c> (room closed). Safe to call from shutdown paths; runs synchronously so it completes before <c>Application.Quit</c>.</summary>
|
/// <summary>
|
||||||
|
/// If entry fees were collected and no winner was reported yet, settle via blocking <c>/winner</c>
|
||||||
|
/// (remaining player or last-disconnect-wins) before room close / quit.
|
||||||
|
/// </summary>
|
||||||
|
public static void SettleWinnerIfNeededBeforeShutdown()
|
||||||
|
{
|
||||||
|
if (instance == null)
|
||||||
|
return;
|
||||||
|
instance.SettleWinnerIfNeededBeforeShutdownInstance();
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Sets match <c>status</c> to <c>-1</c> (room closed). Settles winner first when escrow is open. Synchronous for <c>Application.Quit</c>.</summary>
|
||||||
public static void ReportDedicatedMatchRoomClosed()
|
public static void ReportDedicatedMatchRoomClosed()
|
||||||
{
|
{
|
||||||
|
SettleWinnerIfNeededBeforeShutdown();
|
||||||
|
|
||||||
if (_dedicatedRoomClosedReported || DedicatedMatchId <= 0 || string.IsNullOrEmpty(DedicatedMatchSecret))
|
if (_dedicatedRoomClosedReported || DedicatedMatchId <= 0 || string.IsNullOrEmpty(DedicatedMatchSecret))
|
||||||
return;
|
return;
|
||||||
_dedicatedRoomClosedReported = true;
|
_dedicatedRoomClosedReported = true;
|
||||||
|
|
||||||
if (DedicatedMatchId <= 0 || string.IsNullOrEmpty(DedicatedMatchSecret))
|
|
||||||
return;
|
|
||||||
|
|
||||||
using (var req = DedicatedMatschInternalApi.BuildRequest(DedicatedInternalApiBase, DedicatedMatchId, DedicatedMatchSecret, "{\"status\":-1}"))
|
using (var req = DedicatedMatschInternalApi.BuildRequest(DedicatedInternalApiBase, DedicatedMatchId, DedicatedMatchSecret, "{\"status\":-1}"))
|
||||||
{
|
{
|
||||||
var op = req.SendWebRequest();
|
var op = req.SendWebRequest();
|
||||||
@@ -158,11 +172,24 @@ public class GameManager : NetworkBehaviour
|
|||||||
static bool _dedicatedRoomClosedReported;
|
static bool _dedicatedRoomClosedReported;
|
||||||
static string Iso8601UtcNow() => DateTime.UtcNow.ToString("yyyy-MM-dd'T'HH:mm:ss.fff'Z'", System.Globalization.CultureInfo.InvariantCulture);
|
static string Iso8601UtcNow() => DateTime.UtcNow.ToString("yyyy-MM-dd'T'HH:mm:ss.fff'Z'", System.Globalization.CultureInfo.InvariantCulture);
|
||||||
|
|
||||||
|
const float DisconnectForfeitGraceSeconds = 15f;
|
||||||
|
const int ConsecutiveSkipsToForfeit = 2;
|
||||||
|
|
||||||
bool _dedicatedReportedRedJoin;
|
bool _dedicatedReportedRedJoin;
|
||||||
bool _dedicatedReportedBlueJoin;
|
bool _dedicatedReportedBlueJoin;
|
||||||
bool _dedicatedReportedGameOver;
|
bool _entriesCollected;
|
||||||
|
bool _collectFailed;
|
||||||
|
bool _winnerSettled;
|
||||||
bool _replayRecordingStarted;
|
bool _replayRecordingStarted;
|
||||||
|
|
||||||
|
bool _redConnected;
|
||||||
|
bool _blueConnected;
|
||||||
|
float _redForfeitDeadline = -1f;
|
||||||
|
float _blueForfeitDeadline = -1f;
|
||||||
|
readonly List<Team> _disconnectOrder = new List<Team>();
|
||||||
|
int _consecutiveSkipsRed;
|
||||||
|
int _consecutiveSkipsBlue;
|
||||||
|
|
||||||
public static Action<Team> OnTeamChanged;
|
public static Action<Team> OnTeamChanged;
|
||||||
public static bool isMoving{
|
public static bool isMoving{
|
||||||
get{
|
get{
|
||||||
@@ -211,6 +238,7 @@ public class GameManager : NetworkBehaviour
|
|||||||
public float ballMoveTime = 3f;
|
public float ballMoveTime = 3f;
|
||||||
public float puckDragClampMax = 5f;
|
public float puckDragClampMax = 5f;
|
||||||
public float puckDragMinClamp = 1f;
|
public float puckDragMinClamp = 1f;
|
||||||
|
public float puckSelectMaxDistance = 4f;
|
||||||
|
|
||||||
[Header("Field bounds")]
|
[Header("Field bounds")]
|
||||||
[Tooltip("Pitch width (X). Length (Y) is fieldSize × 2. Origin-centered; used for boundary-based camera zoom while dragging.")]
|
[Tooltip("Pitch width (X). Length (Y) is fieldSize × 2. Origin-centered; used for boundary-based camera zoom while dragging.")]
|
||||||
@@ -320,9 +348,28 @@ public class GameManager : NetworkBehaviour
|
|||||||
/// <summary>Server-only: called from <see cref="NetPlayer.CmdSetTeam"/> after <c>myTeam</c> is set.</summary>
|
/// <summary>Server-only: called from <see cref="NetPlayer.CmdSetTeam"/> after <c>myTeam</c> is set.</summary>
|
||||||
public void OnMatchPlayerTeamAssigned(Team team)
|
public void OnMatchPlayerTeamAssigned(Team team)
|
||||||
{
|
{
|
||||||
if (!isServer || DedicatedMatchId <= 0 || string.IsNullOrEmpty(DedicatedMatchSecret))
|
Logger.Log($"Dedicated join: team assigned {team} isServer={isServer} matchId={DedicatedMatchId} secretEmpty={string.IsNullOrEmpty(DedicatedMatchSecret)} redJoin={_dedicatedReportedRedJoin} blueJoin={_dedicatedReportedBlueJoin} collected={_entriesCollected}");
|
||||||
|
|
||||||
|
if (!isServer)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (team == Team.Red)
|
||||||
|
{
|
||||||
|
_redConnected = true;
|
||||||
|
_redForfeitDeadline = -1f;
|
||||||
|
}
|
||||||
|
else if (team == Team.Blue)
|
||||||
|
{
|
||||||
|
_blueConnected = true;
|
||||||
|
_blueForfeitDeadline = -1f;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (DedicatedMatchId <= 0 || string.IsNullOrEmpty(DedicatedMatchSecret))
|
||||||
|
{
|
||||||
|
Logger.Log($"Dedicated join: skipping PATCH (matchId={DedicatedMatchId}, secretEmpty={string.IsNullOrEmpty(DedicatedMatchSecret)})");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
int n = FindObjectsByType<NetPlayer>(FindObjectsSortMode.None).Length;
|
int n = FindObjectsByType<NetPlayer>(FindObjectsSortMode.None).Length;
|
||||||
string ts = Iso8601UtcNow();
|
string ts = Iso8601UtcNow();
|
||||||
|
|
||||||
@@ -330,20 +377,141 @@ public class GameManager : NetworkBehaviour
|
|||||||
{
|
{
|
||||||
_dedicatedReportedRedJoin = true;
|
_dedicatedReportedRedJoin = true;
|
||||||
int status = n >= 2 ? 2 : 1;
|
int status = n >= 2 ? 2 : 1;
|
||||||
|
bool collectAttempt = _dedicatedReportedRedJoin && _dedicatedReportedBlueJoin;
|
||||||
string json = "{\"red_joined_at\":\"" + ts + "\",\"status\":" + status + "}";
|
string json = "{\"red_joined_at\":\"" + ts + "\",\"status\":" + status + "}";
|
||||||
StartCoroutine(DedicatedMatchPatch(DedicatedInternalApiBase, DedicatedMatchId, DedicatedMatchSecret, json));
|
Logger.Log($"Dedicated join: starting red PATCH collectAttempt={collectAttempt} players={n} body={json}");
|
||||||
// StartCoroutine(DedicatedMatchInternalApi.Patch(DedicatedInternalApiBase, DedicatedMatchId, DedicatedMatchSecret, json));
|
StartCoroutine(CoDedicatedMatchJoinPatch(DedicatedInternalApiBase, DedicatedMatchId, DedicatedMatchSecret, json, collectAttempt));
|
||||||
}
|
}
|
||||||
else if (team == Team.Blue && !_dedicatedReportedBlueJoin)
|
else if (team == Team.Blue && !_dedicatedReportedBlueJoin)
|
||||||
{
|
{
|
||||||
_dedicatedReportedBlueJoin = true;
|
_dedicatedReportedBlueJoin = true;
|
||||||
int status = n >= 2 ? 2 : 1;
|
int status = n >= 2 ? 2 : 1;
|
||||||
|
bool collectAttempt = _dedicatedReportedRedJoin && _dedicatedReportedBlueJoin;
|
||||||
string json = "{\"blue_joined_at\":\"" + ts + "\",\"status\":" + status + "}";
|
string json = "{\"blue_joined_at\":\"" + ts + "\",\"status\":" + status + "}";
|
||||||
StartCoroutine(DedicatedMatchPatch(DedicatedInternalApiBase, DedicatedMatchId, DedicatedMatchSecret, json));
|
Logger.Log($"Dedicated join: starting blue PATCH collectAttempt={collectAttempt} players={n} body={json}");
|
||||||
|
StartCoroutine(CoDedicatedMatchJoinPatch(DedicatedInternalApiBase, DedicatedMatchId, DedicatedMatchSecret, json, collectAttempt));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Logger.Log($"Dedicated join: no new PATCH for {team} (already reported or unknown team)");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
IEnumerator DedicatedMatchPatch(string baseUrl, int matchId, string secret, string json){
|
/// <summary>Server-only: Mirror disconnect — track order and start forfeit grace after collect + kickoff.</summary>
|
||||||
|
public void OnDedicatedMatchPlayerDisconnected(Team team)
|
||||||
|
{
|
||||||
|
if (!isServer)
|
||||||
|
return;
|
||||||
|
if (team != Team.Red && team != Team.Blue)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (team == Team.Red)
|
||||||
|
{
|
||||||
|
if (!_redConnected)
|
||||||
|
return;
|
||||||
|
_redConnected = false;
|
||||||
|
_redForfeitDeadline = Time.realtimeSinceStartup + DisconnectForfeitGraceSeconds;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (!_blueConnected)
|
||||||
|
return;
|
||||||
|
_blueConnected = false;
|
||||||
|
_blueForfeitDeadline = Time.realtimeSinceStartup + DisconnectForfeitGraceSeconds;
|
||||||
|
}
|
||||||
|
|
||||||
|
_disconnectOrder.Add(team);
|
||||||
|
Logger.Log($"Dedicated match: {team} disconnected (order count={_disconnectOrder.Count})");
|
||||||
|
|
||||||
|
if (!_entriesCollected || _winnerSettled || !gameStarted)
|
||||||
|
return;
|
||||||
|
|
||||||
|
// Both gone → last player who disconnected wins immediately.
|
||||||
|
if (!_redConnected && !_blueConnected && _disconnectOrder.Count > 0)
|
||||||
|
EndMatch(_disconnectOrder[_disconnectOrder.Count - 1]);
|
||||||
|
}
|
||||||
|
|
||||||
|
IEnumerator CoDedicatedMatchJoinPatch(string baseUrl, int matchId, string secret, string json, bool collectAttempt)
|
||||||
|
{
|
||||||
|
if (matchId <= 0 || string.IsNullOrEmpty(secret))
|
||||||
|
{
|
||||||
|
Logger.Log($"Dedicated join PATCH: abort before send (matchId={matchId}, secretEmpty={string.IsNullOrEmpty(secret)})");
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
|
||||||
|
using (var req = DedicatedMatschInternalApi.BuildRequest(baseUrl, matchId, secret, json))
|
||||||
|
{
|
||||||
|
Logger.Log("Dedicated join PATCH BEFORE: url=" + req.url
|
||||||
|
+ " method=" + req.method
|
||||||
|
+ " collectAttempt=" + collectAttempt
|
||||||
|
+ " body=" + json
|
||||||
|
+ " base=" + baseUrl);
|
||||||
|
|
||||||
|
yield return req.SendWebRequest();
|
||||||
|
long code = req.responseCode;
|
||||||
|
string body = req.downloadHandler != null ? req.downloadHandler.text : "";
|
||||||
|
|
||||||
|
Logger.Log("Dedicated join PATCH AFTER: result=" + req.result
|
||||||
|
+ " http=" + code
|
||||||
|
+ " error=" + (req.error ?? "")
|
||||||
|
+ " collectAttempt=" + collectAttempt
|
||||||
|
+ " body=" + body);
|
||||||
|
|
||||||
|
if (code >= 200 && code < 300)
|
||||||
|
{
|
||||||
|
DedicatedMatschInternalApi.LogIfFailed(req);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
var parsed = JsonUtility.FromJson<DedicatedJoinPatchResponse>(body);
|
||||||
|
bool collected = parsed != null && (parsed.entries_collected || parsed.already_collected);
|
||||||
|
Logger.Log("Dedicated join PATCH parsed: ok=" + (parsed != null && parsed.ok)
|
||||||
|
+ " id=" + (parsed != null ? parsed.id : 0)
|
||||||
|
+ " entries_collected=" + (parsed != null && parsed.entries_collected)
|
||||||
|
+ " already_collected=" + (parsed != null && parsed.already_collected)
|
||||||
|
+ " escrow_user_id=" + (parsed != null ? parsed.escrow_user_id : 0)
|
||||||
|
+ " willSetCollected=" + collected);
|
||||||
|
if (collected)
|
||||||
|
{
|
||||||
|
_entriesCollected = true;
|
||||||
|
Logger.Log("Dedicated match: entry fees collected into escrow"
|
||||||
|
+ (parsed.already_collected ? " (already_collected)" : ""));
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Logger.Log("Dedicated join PATCH: 2xx but entries not collected yet (waiting for other join or unexpected body)");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
Logger.Log("Dedicated join PATCH: could not parse body: " + e.Message + " body=" + body);
|
||||||
|
}
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
|
||||||
|
DedicatedMatschInternalApi.LogIfFailed(req);
|
||||||
|
|
||||||
|
// Collect runs on the join that sets both timestamps; non-2xx then is fatal.
|
||||||
|
if (collectAttempt)
|
||||||
|
{
|
||||||
|
_collectFailed = true;
|
||||||
|
Logger.Log("Dedicated match: collect failed (HTTP " + code + ") — aborting kickoff, no winner call");
|
||||||
|
AbortMatchCollectFailed();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Logger.Log("Dedicated join PATCH: non-2xx on first join (http=" + code + ") — not aborting collect yet");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void AbortMatchCollectFailed()
|
||||||
|
{
|
||||||
|
if (NetworkServer.active)
|
||||||
|
NetworkServer.DisconnectAll();
|
||||||
|
}
|
||||||
|
|
||||||
|
IEnumerator DedicatedMatchPatch(string baseUrl, int matchId, string secret, string json)
|
||||||
|
{
|
||||||
if (matchId <= 0 || string.IsNullOrEmpty(secret))
|
if (matchId <= 0 || string.IsNullOrEmpty(secret))
|
||||||
yield break;
|
yield break;
|
||||||
|
|
||||||
@@ -369,9 +537,14 @@ public class GameManager : NetworkBehaviour
|
|||||||
|
|
||||||
void ReportDedicatedMatchGameOver(Team winningTeam)
|
void ReportDedicatedMatchGameOver(Team winningTeam)
|
||||||
{
|
{
|
||||||
if (!isServer || DedicatedMatchId <= 0 || string.IsNullOrEmpty(DedicatedMatchSecret) || _dedicatedReportedGameOver)
|
if (!isServer || DedicatedMatchId <= 0 || string.IsNullOrEmpty(DedicatedMatchSecret) || _winnerSettled)
|
||||||
return;
|
return;
|
||||||
_dedicatedReportedGameOver = true;
|
if (!_entriesCollected)
|
||||||
|
{
|
||||||
|
Logger.Log("Dedicated match: skipping winner PATCH (entries not collected)");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
_winnerSettled = true;
|
||||||
StartCoroutine(CoReportDedicatedMatchGameOver(winningTeam));
|
StartCoroutine(CoReportDedicatedMatchGameOver(winningTeam));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -382,8 +555,95 @@ public class GameManager : NetworkBehaviour
|
|||||||
yield return DedicatedMatchPatchWinner(DedicatedInternalApiBase, DedicatedMatchId, DedicatedMatchSecret, winner);
|
yield return DedicatedMatchPatchWinner(DedicatedInternalApiBase, DedicatedMatchId, DedicatedMatchSecret, winner);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>Score or forfeit end: latch game over, report winner if escrowed, notify clients.</summary>
|
||||||
|
void EndMatch(Team winningTeam)
|
||||||
|
{
|
||||||
|
if (!isServer || isGameEnded)
|
||||||
|
return;
|
||||||
|
|
||||||
|
isGameEnded = true;
|
||||||
|
ReplayRecorder.StopAndFlush();
|
||||||
|
ReportDedicatedMatchGameOver(winningTeam);
|
||||||
|
RpcGameOver(winningTeam);
|
||||||
|
gameOver(winningTeam);
|
||||||
|
}
|
||||||
|
|
||||||
|
void HandleDisconnectForfeitTimers()
|
||||||
|
{
|
||||||
|
if (!_entriesCollected || _winnerSettled || !gameStarted || isGameEnded)
|
||||||
|
return;
|
||||||
|
|
||||||
|
float now = Time.realtimeSinceStartup;
|
||||||
|
|
||||||
|
if (!_redConnected && _blueConnected && _redForfeitDeadline > 0f && now >= _redForfeitDeadline)
|
||||||
|
{
|
||||||
|
Logger.Log("Dedicated match: red forfeit grace expired — blue wins");
|
||||||
|
EndMatch(Team.Blue);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!_blueConnected && _redConnected && _blueForfeitDeadline > 0f && now >= _blueForfeitDeadline)
|
||||||
|
{
|
||||||
|
Logger.Log("Dedicated match: blue forfeit grace expired — red wins");
|
||||||
|
EndMatch(Team.Red);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!_redConnected && !_blueConnected
|
||||||
|
&& _redForfeitDeadline > 0f && now >= _redForfeitDeadline
|
||||||
|
&& _blueForfeitDeadline > 0f && now >= _blueForfeitDeadline
|
||||||
|
&& _disconnectOrder.Count > 0)
|
||||||
|
{
|
||||||
|
Team winner = _disconnectOrder[_disconnectOrder.Count - 1];
|
||||||
|
Logger.Log("Dedicated match: both forfeit graces expired — last disconnect wins: " + winner);
|
||||||
|
EndMatch(winner);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Team ResolveForfeitWinnerForShutdown()
|
||||||
|
{
|
||||||
|
if (_redConnected && !_blueConnected)
|
||||||
|
return Team.Red;
|
||||||
|
if (_blueConnected && !_redConnected)
|
||||||
|
return Team.Blue;
|
||||||
|
if (_disconnectOrder.Count > 0)
|
||||||
|
return _disconnectOrder[_disconnectOrder.Count - 1];
|
||||||
|
Logger.Log("Dedicated match: shutdown settle with no disconnect order — defaulting to red");
|
||||||
|
return Team.Red;
|
||||||
|
}
|
||||||
|
|
||||||
|
void SettleWinnerIfNeededBeforeShutdownInstance()
|
||||||
|
{
|
||||||
|
if (!_entriesCollected || _winnerSettled)
|
||||||
|
return;
|
||||||
|
if (DedicatedMatchId <= 0 || string.IsNullOrEmpty(DedicatedMatchSecret))
|
||||||
|
return;
|
||||||
|
|
||||||
|
Team winningTeam = ResolveForfeitWinnerForShutdown();
|
||||||
|
_winnerSettled = true;
|
||||||
|
isGameEnded = true;
|
||||||
|
Logger.Log("Dedicated match: blocking winner settle before shutdown → " + winningTeam);
|
||||||
|
|
||||||
|
using (var statusReq = DedicatedMatschInternalApi.BuildRequest(
|
||||||
|
DedicatedInternalApiBase, DedicatedMatchId, DedicatedMatchSecret, "{\"status\":3}"))
|
||||||
|
{
|
||||||
|
var op = statusReq.SendWebRequest();
|
||||||
|
while (!op.isDone)
|
||||||
|
System.Threading.Thread.Sleep(16);
|
||||||
|
DedicatedMatschInternalApi.LogIfFailed(statusReq);
|
||||||
|
}
|
||||||
|
|
||||||
|
string winner = winningTeam == Team.Red ? "red" : "blue";
|
||||||
|
string jsonBody = "{\"winner\":\"" + winner + "\"}";
|
||||||
|
using (var winReq = DedicatedMatschInternalApi.BuildWinnerRequest(
|
||||||
|
DedicatedInternalApiBase, DedicatedMatchId, DedicatedMatchSecret, jsonBody))
|
||||||
|
{
|
||||||
|
var op = winReq.SendWebRequest();
|
||||||
|
while (!op.isDone)
|
||||||
|
System.Threading.Thread.Sleep(16);
|
||||||
|
DedicatedMatschInternalApi.LogWinnerPatchResult(winReq);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void Start()
|
void Start()
|
||||||
{
|
{
|
||||||
@@ -405,6 +665,38 @@ public class GameManager : NetworkBehaviour
|
|||||||
pucks.Remove(puck);
|
pucks.Remove(puck);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int resetCollisionLockCount;
|
||||||
|
public bool AreResetCollisionsDisabled => resetCollisionLockCount > 0;
|
||||||
|
|
||||||
|
public void PushResetCollisionLock()
|
||||||
|
{
|
||||||
|
resetCollisionLockCount++;
|
||||||
|
if (resetCollisionLockCount == 1)
|
||||||
|
SetPlayCollisionsEnabled(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void PopResetCollisionLock()
|
||||||
|
{
|
||||||
|
resetCollisionLockCount = Mathf.Max(0, resetCollisionLockCount - 1);
|
||||||
|
if (resetCollisionLockCount == 0)
|
||||||
|
SetPlayCollisionsEnabled(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SetPlayCollisionsEnabled(bool enabled)
|
||||||
|
{
|
||||||
|
foreach (Puck puck in pucks)
|
||||||
|
{
|
||||||
|
if (puck != null)
|
||||||
|
puck.SetCollisionsEnabled(enabled);
|
||||||
|
}
|
||||||
|
if (ball != null)
|
||||||
|
{
|
||||||
|
Ball ballComp = ball.GetComponent<Ball>();
|
||||||
|
if (ballComp != null)
|
||||||
|
ballComp.SetCollisionsEnabled(enabled);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
[SyncVar(hook = nameof(OnSelectedPuckChanged))]
|
[SyncVar(hook = nameof(OnSelectedPuckChanged))]
|
||||||
@@ -451,7 +743,7 @@ public class GameManager : NetworkBehaviour
|
|||||||
continue;
|
continue;
|
||||||
if(puck.team != SelectedTeam){continue;}
|
if(puck.team != SelectedTeam){continue;}
|
||||||
float dist = Vector2.Distance(position, puck.transform.position);
|
float dist = Vector2.Distance(position, puck.transform.position);
|
||||||
if (dist < minDistance)
|
if (dist < minDistance && dist <= puckSelectMaxDistance)
|
||||||
{
|
{
|
||||||
minDistance = dist;
|
minDistance = dist;
|
||||||
closestPuck = puck;
|
closestPuck = puck;
|
||||||
@@ -487,6 +779,14 @@ public class GameManager : NetworkBehaviour
|
|||||||
selectedPuck = null;
|
selectedPuck = null;
|
||||||
GameEvents.OnSelectedPuckChanged?.Invoke(null);
|
GameEvents.OnSelectedPuckChanged?.Invoke(null);
|
||||||
|
|
||||||
|
if (isServer)
|
||||||
|
{
|
||||||
|
bool wasWarned = GetConsecutiveSkips(SelectedTeam) > 0;
|
||||||
|
ClearConsecutiveSkips(SelectedTeam);
|
||||||
|
if (wasWarned)
|
||||||
|
RpcHideSkipForfeitWarning(SelectedTeam);
|
||||||
|
}
|
||||||
|
|
||||||
SwitchTeams();
|
SwitchTeams();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -518,6 +818,7 @@ public class GameManager : NetworkBehaviour
|
|||||||
|
|
||||||
SelectedTeam = SelectedTeam == Team.Red ? Team.Blue : Team.Red;
|
SelectedTeam = SelectedTeam == Team.Red ? Team.Blue : Team.Red;
|
||||||
OnTeamChanged?.Invoke(SelectedTeam);
|
OnTeamChanged?.Invoke(SelectedTeam);
|
||||||
|
MaybeWarnIfAtRiskOfSkipForfeit(SelectedTeam);
|
||||||
|
|
||||||
switchingTeams=false;
|
switchingTeams=false;
|
||||||
}
|
}
|
||||||
@@ -571,12 +872,35 @@ public class GameManager : NetworkBehaviour
|
|||||||
#endif
|
#endif
|
||||||
if (players.Length == 2)
|
if (players.Length == 2)
|
||||||
{
|
{
|
||||||
gameStarted = true;
|
// Dedicated matches: wait until API collected entry fees into escrow.
|
||||||
GameCanvas.instance.HideWaitingForOpponentPanel();
|
if (DedicatedMatchId > 0)
|
||||||
Logger.Log("Game started On Server");
|
{
|
||||||
|
if (_entriesCollected && !_collectFailed)
|
||||||
|
{
|
||||||
|
gameStarted = true;
|
||||||
|
GameCanvas.instance.HideWaitingForOpponentPanel();
|
||||||
|
Logger.Log("Game started On Server (entries collected)");
|
||||||
|
}
|
||||||
|
else if (Time.frameCount % 300 == 0)
|
||||||
|
{
|
||||||
|
Logger.Log("Dedicated kickoff waiting: players=2 collected=" + _entriesCollected
|
||||||
|
+ " collectFailed=" + _collectFailed
|
||||||
|
+ " redJoin=" + _dedicatedReportedRedJoin
|
||||||
|
+ " blueJoin=" + _dedicatedReportedBlueJoin
|
||||||
|
+ " matchId=" + DedicatedMatchId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
gameStarted = true;
|
||||||
|
GameCanvas.instance.HideWaitingForOpponentPanel();
|
||||||
|
Logger.Log("Game started On Server");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
HandleDisconnectForfeitTimers();
|
||||||
|
|
||||||
// Host practice (tutorial) and dedicated matches both record once NetworkServer is ready.
|
// Host practice (tutorial) and dedicated matches both record once NetworkServer is ready.
|
||||||
// Retry until StartRecording succeeds — StartHost can lag one frame behind gameStarted.
|
// Retry until StartRecording succeeds — StartHost can lag one frame behind gameStarted.
|
||||||
if (gameStarted && !_replayRecordingStarted && NetworkServer.active)
|
if (gameStarted && !_replayRecordingStarted && NetworkServer.active)
|
||||||
@@ -636,7 +960,7 @@ public class GameManager : NetworkBehaviour
|
|||||||
}
|
}
|
||||||
|
|
||||||
void HandleTurnTimer(){
|
void HandleTurnTimer(){
|
||||||
if (turnTimerPaused)
|
if (turnTimerPaused || isGameEnded)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
if(turnTimerCounter < turnTimer){
|
if(turnTimerCounter < turnTimer){
|
||||||
@@ -644,11 +968,103 @@ public class GameManager : NetworkBehaviour
|
|||||||
turnTimerCounter += Time.deltaTime;
|
turnTimerCounter += Time.deltaTime;
|
||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
SwitchTeams();
|
OnTurnTimerExpired();
|
||||||
turnTimerCounter = 0;
|
turnTimerCounter = 0;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void OnTurnTimerExpired()
|
||||||
|
{
|
||||||
|
if (!isServer || !gameStarted || isGameEnded)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (GameTutorialManager.tutorialModeEnabled)
|
||||||
|
{
|
||||||
|
SwitchTeams();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
Team skippingTeam = SelectedTeam;
|
||||||
|
int skips = IncrementConsecutiveSkips(skippingTeam);
|
||||||
|
Logger.Log($"Match: {skippingTeam} skipped turn ({skips}/{ConsecutiveSkipsToForfeit})");
|
||||||
|
|
||||||
|
if (skips >= ConsecutiveSkipsToForfeit)
|
||||||
|
{
|
||||||
|
Team winner = GetOpposingTeam(skippingTeam);
|
||||||
|
Logger.Log($"Match: {skippingTeam} forfeited for skipping two consecutive turns — {winner} wins");
|
||||||
|
RpcHideSkipForfeitWarning(skippingTeam);
|
||||||
|
EndMatch(winner);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
SwitchTeams();
|
||||||
|
}
|
||||||
|
|
||||||
|
int GetConsecutiveSkips(Team team)
|
||||||
|
{
|
||||||
|
return team == Team.Red ? _consecutiveSkipsRed : _consecutiveSkipsBlue;
|
||||||
|
}
|
||||||
|
|
||||||
|
int IncrementConsecutiveSkips(Team team)
|
||||||
|
{
|
||||||
|
if (team == Team.Red)
|
||||||
|
return ++_consecutiveSkipsRed;
|
||||||
|
return ++_consecutiveSkipsBlue;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ClearConsecutiveSkips(Team team)
|
||||||
|
{
|
||||||
|
if (team == Team.Red)
|
||||||
|
_consecutiveSkipsRed = 0;
|
||||||
|
else
|
||||||
|
_consecutiveSkipsBlue = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void MaybeWarnIfAtRiskOfSkipForfeit(Team team)
|
||||||
|
{
|
||||||
|
if (!isServer || !gameStarted || isGameEnded)
|
||||||
|
return;
|
||||||
|
if (GameTutorialManager.tutorialModeEnabled)
|
||||||
|
return;
|
||||||
|
if (GetConsecutiveSkips(team) <= 0)
|
||||||
|
return;
|
||||||
|
|
||||||
|
RpcShowSkipForfeitWarning(team);
|
||||||
|
}
|
||||||
|
|
||||||
|
[ClientRpc]
|
||||||
|
void RpcShowSkipForfeitWarning(Team team)
|
||||||
|
{
|
||||||
|
ShowSkipForfeitWarning(team);
|
||||||
|
}
|
||||||
|
|
||||||
|
[ClientRpc]
|
||||||
|
void RpcHideSkipForfeitWarning(Team team)
|
||||||
|
{
|
||||||
|
HideSkipForfeitWarning(team);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>Shown when this team starts a turn after already skipping once.</summary>
|
||||||
|
public void ShowSkipForfeitWarning(Team team)
|
||||||
|
{
|
||||||
|
if (NetPlayer.localPlayer != null && NetPlayer.localPlayer.myTeam != team)
|
||||||
|
return;
|
||||||
|
if (GameCanvas.instance == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
GameCanvas.instance.ShowKickWarning();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void HideSkipForfeitWarning(Team team)
|
||||||
|
{
|
||||||
|
if (NetPlayer.localPlayer != null && NetPlayer.localPlayer.myTeam != team)
|
||||||
|
return;
|
||||||
|
if (GameCanvas.instance == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
GameCanvas.instance.HideKickWarning();
|
||||||
|
}
|
||||||
|
|
||||||
float flashPhase = 0f;
|
float flashPhase = 0f;
|
||||||
float lastUpdateTime = 0f;
|
float lastUpdateTime = 0f;
|
||||||
float lastRemainingTime = 10f;
|
float lastRemainingTime = 10f;
|
||||||
@@ -727,6 +1143,7 @@ public class GameManager : NetworkBehaviour
|
|||||||
turnTimerCounter = 0;
|
turnTimerCounter = 0;
|
||||||
SelectedTeam = kickoffTeam;
|
SelectedTeam = kickoffTeam;
|
||||||
OnTeamChanged?.Invoke(SelectedTeam);
|
OnTeamChanged?.Invoke(SelectedTeam);
|
||||||
|
MaybeWarnIfAtRiskOfSkipForfeit(SelectedTeam);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void OnGoal(Team team){
|
public void OnGoal(Team team){
|
||||||
@@ -769,17 +1186,9 @@ public class GameManager : NetworkBehaviour
|
|||||||
|
|
||||||
|
|
||||||
if(blueScore >= 3){
|
if(blueScore >= 3){
|
||||||
isGameEnded = true;
|
EndMatch(Team.Blue);
|
||||||
ReplayRecorder.StopAndFlush();
|
|
||||||
ReportDedicatedMatchGameOver(Team.Blue);
|
|
||||||
RpcGameOver(Team.Blue);
|
|
||||||
gameOver(Team.Blue);
|
|
||||||
}else if(redScore >= 3){
|
}else if(redScore >= 3){
|
||||||
isGameEnded = true;
|
EndMatch(Team.Red);
|
||||||
ReplayRecorder.StopAndFlush();
|
|
||||||
ReportDedicatedMatchGameOver(Team.Red);
|
|
||||||
RpcGameOver(Team.Red);
|
|
||||||
gameOver(Team.Red);
|
|
||||||
}else{
|
}else{
|
||||||
StartCoroutine(CoroutineOnGoal(team));
|
StartCoroutine(CoroutineOnGoal(team));
|
||||||
}
|
}
|
||||||
@@ -847,6 +1256,7 @@ public class GameManager : NetworkBehaviour
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool _thirdPlayerLeaveTriggered;
|
bool _thirdPlayerLeaveTriggered;
|
||||||
|
bool _leaveRequested;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Called when the local client spawns into a match. If three <see cref="NetPlayer"/> instances exist
|
/// Called when the local client spawns into a match. If three <see cref="NetPlayer"/> instances exist
|
||||||
@@ -859,8 +1269,108 @@ public class GameManager : NetworkBehaviour
|
|||||||
StartCoroutine(CoLeaveIfThirdPlayer());
|
StartCoroutine(CoLeaveIfThirdPlayer());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void Leave(){
|
/// <summary>
|
||||||
LevelLoadManager.instance.Leave();
|
/// Voluntary leave: forfeit this player immediately so the opponent wins, then return to the menu.
|
||||||
|
/// </summary>
|
||||||
|
public void Leave()
|
||||||
|
{
|
||||||
|
if (_leaveRequested)
|
||||||
|
return;
|
||||||
|
_leaveRequested = true;
|
||||||
|
|
||||||
|
bool shouldForfeit = gameStarted && !isGameEnded;
|
||||||
|
if (shouldForfeit)
|
||||||
|
{
|
||||||
|
if (isServer)
|
||||||
|
ForfeitLeavingTeam(ResolveLocalLeavingTeam());
|
||||||
|
else
|
||||||
|
CmdForfeit();
|
||||||
|
StartCoroutine(CoLeaveAfterForfeitSent());
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
DoLeaveToMenu();
|
||||||
|
}
|
||||||
|
|
||||||
|
IEnumerator CoLeaveAfterForfeitSent()
|
||||||
|
{
|
||||||
|
// Let the forfeit Command / game-over RPC flush before tearing down the connection.
|
||||||
|
yield return null;
|
||||||
|
yield return new WaitForSecondsRealtime(0.1f);
|
||||||
|
DoLeaveToMenu();
|
||||||
|
}
|
||||||
|
|
||||||
|
void DoLeaveToMenu()
|
||||||
|
{
|
||||||
|
if (LevelLoadManager.instance != null)
|
||||||
|
LevelLoadManager.instance.Leave();
|
||||||
|
}
|
||||||
|
|
||||||
|
[Command(requiresAuthority = false)]
|
||||||
|
void CmdForfeit(NetworkConnectionToClient sender = null)
|
||||||
|
{
|
||||||
|
Team leavingTeam;
|
||||||
|
if (!TryResolveLeavingTeam(sender, out leavingTeam))
|
||||||
|
{
|
||||||
|
Logger.Log("Forfeit: could not resolve leaving team from sender");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
ForfeitLeavingTeam(leavingTeam);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool TryResolveLeavingTeam(NetworkConnectionToClient sender, out Team leavingTeam)
|
||||||
|
{
|
||||||
|
leavingTeam = Team.Red;
|
||||||
|
if (sender != null)
|
||||||
|
{
|
||||||
|
if (sender.identity != null)
|
||||||
|
{
|
||||||
|
var fromIdentity = sender.identity.GetComponent<NetPlayer>();
|
||||||
|
if (fromIdentity != null)
|
||||||
|
{
|
||||||
|
leavingTeam = fromIdentity.myTeam;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach (var player in FindObjectsByType<NetPlayer>(FindObjectsSortMode.None))
|
||||||
|
{
|
||||||
|
if (player != null && player.connectionToClient == sender)
|
||||||
|
{
|
||||||
|
leavingTeam = player.myTeam;
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if (isServer && isClient)
|
||||||
|
{
|
||||||
|
leavingTeam = ResolveLocalLeavingTeam();
|
||||||
|
return leavingTeam == Team.Red || leavingTeam == Team.Blue;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
Team ResolveLocalLeavingTeam()
|
||||||
|
{
|
||||||
|
if (NetPlayer.localPlayer != null)
|
||||||
|
return NetPlayer.localPlayer.myTeam;
|
||||||
|
return MyTeam;
|
||||||
|
}
|
||||||
|
|
||||||
|
void ForfeitLeavingTeam(Team leavingTeam)
|
||||||
|
{
|
||||||
|
if (!isServer || isGameEnded)
|
||||||
|
return;
|
||||||
|
if (!gameStarted)
|
||||||
|
return;
|
||||||
|
if (leavingTeam != Team.Red && leavingTeam != Team.Blue)
|
||||||
|
return;
|
||||||
|
|
||||||
|
Team winner = GetOpposingTeam(leavingTeam);
|
||||||
|
Logger.Log($"Match: {leavingTeam} forfeited by leave — {winner} wins");
|
||||||
|
EndMatch(winner);
|
||||||
}
|
}
|
||||||
|
|
||||||
IEnumerator CoLeaveIfThirdPlayer()
|
IEnumerator CoLeaveIfThirdPlayer()
|
||||||
@@ -978,14 +1488,13 @@ public class GameManager : NetworkBehaviour
|
|||||||
IEnumerator CoroutineReset(bool kickoff = false){
|
IEnumerator CoroutineReset(bool kickoff = false){
|
||||||
ReplayRecorder.RecordReset(kickoff);
|
ReplayRecorder.RecordReset(kickoff);
|
||||||
float resetDuration = 0.5f;
|
float resetDuration = 0.5f;
|
||||||
|
ball.GetComponent<Ball>().Reset(resetDuration);
|
||||||
if(!kickoff){
|
if(!kickoff){
|
||||||
foreach(Puck puck in pucks){
|
foreach(Puck puck in pucks){
|
||||||
puck.Reset(null, resetDuration);
|
puck.Reset(null, resetDuration);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
ball.GetComponent<Ball>().Reset(resetDuration);
|
|
||||||
|
|
||||||
yield return new WaitForSeconds(resetDuration);
|
yield return new WaitForSeconds(resetDuration);
|
||||||
|
|
||||||
freezeInput=false;
|
freezeInput=false;
|
||||||
@@ -1083,6 +1592,16 @@ static class DedicatedMatschInternalApi
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[Serializable]
|
||||||
|
class DedicatedJoinPatchResponse
|
||||||
|
{
|
||||||
|
public bool ok;
|
||||||
|
public int id;
|
||||||
|
public bool entries_collected;
|
||||||
|
public bool already_collected;
|
||||||
|
public int escrow_user_id;
|
||||||
|
}
|
||||||
|
|
||||||
[Serializable]
|
[Serializable]
|
||||||
class DedicatedWinnerPatchEconomy
|
class DedicatedWinnerPatchEconomy
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -30,6 +30,15 @@ public class GameTutorialManager : MonoBehaviour
|
|||||||
|
|
||||||
void Awake()
|
void Awake()
|
||||||
{
|
{
|
||||||
|
#if UNITY_SERVER
|
||||||
|
tutorialModeEnabled = false;
|
||||||
|
tutorialModeTrigger = false;
|
||||||
|
HideIntroImmediate(intro_shoot);
|
||||||
|
HideIntroImmediate(intro_goal);
|
||||||
|
enabled = false;
|
||||||
|
return;
|
||||||
|
#endif
|
||||||
|
|
||||||
tutorialModeEnabled = false;
|
tutorialModeEnabled = false;
|
||||||
if (isTutorial)
|
if (isTutorial)
|
||||||
tutorialModeTrigger = true;
|
tutorialModeTrigger = true;
|
||||||
|
|||||||
@@ -20,6 +20,8 @@ public class Goal : NetworkBehaviour
|
|||||||
void OnTriggerEnter2D(Collider2D collision)
|
void OnTriggerEnter2D(Collider2D collision)
|
||||||
{
|
{
|
||||||
if(!isServer){return;}
|
if(!isServer){return;}
|
||||||
|
if(GameManager.instance != null && GameManager.instance.AreResetCollisionsDisabled)
|
||||||
|
return;
|
||||||
|
|
||||||
if(collision.gameObject.CompareTag("Player")){
|
if(collision.gameObject.CompareTag("Player")){
|
||||||
if(GameManager.instance == null || !GameManager.instance.CanProcessGoal){
|
if(GameManager.instance == null || !GameManager.instance.CanProcessGoal){
|
||||||
@@ -42,6 +44,8 @@ public class Goal : NetworkBehaviour
|
|||||||
if(!isServer){return;}
|
if(!isServer){return;}
|
||||||
|
|
||||||
if(collision.gameObject.CompareTag("Puck")){
|
if(collision.gameObject.CompareTag("Puck")){
|
||||||
|
if(GameManager.instance != null && GameManager.instance.AreResetCollisionsDisabled)
|
||||||
|
return;
|
||||||
Debug.Log("Puck exit goal", gameObject);
|
Debug.Log("Puck exit goal", gameObject);
|
||||||
Puck puck = collision.gameObject.GetComponent<Puck>();
|
Puck puck = collision.gameObject.GetComponent<Puck>();
|
||||||
Debug.Log(puck.name);
|
Debug.Log(puck.name);
|
||||||
|
|||||||
@@ -53,7 +53,13 @@ public class LoginManager : MonoBehaviour
|
|||||||
[SerializeField] private TMP_Text serverWarningMessageTxt;
|
[SerializeField] private TMP_Text serverWarningMessageTxt;
|
||||||
[SerializeField] private Button btnWarningClose;
|
[SerializeField] private Button btnWarningClose;
|
||||||
|
|
||||||
|
const float KeepaliveIntervalSeconds = 10f;
|
||||||
|
|
||||||
bool _authInProgress;
|
bool _authInProgress;
|
||||||
|
Coroutine _keepaliveRoutine;
|
||||||
|
bool _appPaused;
|
||||||
|
bool _appFocused = true;
|
||||||
|
bool _handlingKeepaliveUnauthorized;
|
||||||
|
|
||||||
public static string AuthToken { get; private set; }
|
public static string AuthToken { get; private set; }
|
||||||
|
|
||||||
@@ -117,6 +123,10 @@ public class LoginManager : MonoBehaviour
|
|||||||
|
|
||||||
if (string.IsNullOrEmpty(AuthToken))
|
if (string.IsNullOrEmpty(AuthToken))
|
||||||
ClearLocalUserProfile();
|
ClearLocalUserProfile();
|
||||||
|
#if !UNITY_EDITOR
|
||||||
|
else
|
||||||
|
StartKeepalive();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
void Start()
|
void Start()
|
||||||
@@ -139,13 +149,16 @@ public class LoginManager : MonoBehaviour
|
|||||||
|
|
||||||
if (!mayContinue)
|
if (!mayContinue)
|
||||||
{
|
{
|
||||||
// Blocked by update or error panel — keep login UI disabled.
|
// Blocked by update or error panel — keep login UI disabled, but hold the session.
|
||||||
|
if (!string.IsNullOrEmpty(AuthToken))
|
||||||
|
StartKeepalive();
|
||||||
SetBusy(false);
|
SetBusy(false);
|
||||||
yield break;
|
yield break;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
#if UNITY_EDITOR
|
||||||
// Dev: log in with clone-aware credentials instead of resuming a saved session.
|
// Dev: log in with clone-aware credentials instead of resuming a saved session.
|
||||||
|
StopKeepalive();
|
||||||
AuthToken = "";
|
AuthToken = "";
|
||||||
PlayerPrefs.DeleteKey(PlayerPrefsAuthKey);
|
PlayerPrefs.DeleteKey(PlayerPrefsAuthKey);
|
||||||
PlayerPrefs.Save();
|
PlayerPrefs.Save();
|
||||||
@@ -161,7 +174,10 @@ public class LoginManager : MonoBehaviour
|
|||||||
SetBusy(false);
|
SetBusy(false);
|
||||||
#else
|
#else
|
||||||
if (!string.IsNullOrEmpty(AuthToken))
|
if (!string.IsNullOrEmpty(AuthToken))
|
||||||
|
{
|
||||||
|
StartKeepalive();
|
||||||
yield return StartCoroutine(ResumeSessionCoroutine());
|
yield return StartCoroutine(ResumeSessionCoroutine());
|
||||||
|
}
|
||||||
else
|
else
|
||||||
SetBusy(false);
|
SetBusy(false);
|
||||||
#endif
|
#endif
|
||||||
@@ -217,6 +233,8 @@ public class LoginManager : MonoBehaviour
|
|||||||
/// <summary>Removes auth token from memory and disk and clears cached profile (login screen recovery).</summary>
|
/// <summary>Removes auth token from memory and disk and clears cached profile (login screen recovery).</summary>
|
||||||
static void InvalidateStoredSession()
|
static void InvalidateStoredSession()
|
||||||
{
|
{
|
||||||
|
if (instance != null)
|
||||||
|
instance.StopKeepalive();
|
||||||
AuthToken = "";
|
AuthToken = "";
|
||||||
ClearLocalUserProfile();
|
ClearLocalUserProfile();
|
||||||
ClearMatchYourTeam();
|
ClearMatchYourTeam();
|
||||||
@@ -224,6 +242,18 @@ public class LoginManager : MonoBehaviour
|
|||||||
PlayerPrefs.Save();
|
PlayerPrefs.Save();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>Clears session state and all PlayerPrefs (full logout).</summary>
|
||||||
|
public static void Logout()
|
||||||
|
{
|
||||||
|
if (instance != null)
|
||||||
|
instance.StopKeepalive();
|
||||||
|
AuthToken = "";
|
||||||
|
ClearLocalUserProfile();
|
||||||
|
ClearMatchYourTeam();
|
||||||
|
PlayerPrefs.DeleteAll();
|
||||||
|
PlayerPrefs.Save();
|
||||||
|
}
|
||||||
|
|
||||||
static void ProceedToMainMenu()
|
static void ProceedToMainMenu()
|
||||||
{
|
{
|
||||||
if (LevelLoadManager.instance != null)
|
if (LevelLoadManager.instance != null)
|
||||||
@@ -242,6 +272,7 @@ public class LoginManager : MonoBehaviour
|
|||||||
void OnLogin()
|
void OnLogin()
|
||||||
{
|
{
|
||||||
if (_authInProgress) return;
|
if (_authInProgress) return;
|
||||||
|
if (_keepaliveRoutine != null && !string.IsNullOrEmpty(AuthToken)) return;
|
||||||
|
|
||||||
string username = usernameInputLogin.text;
|
string username = usernameInputLogin.text;
|
||||||
string password = passwordInputLogin.text;
|
string password = passwordInputLogin.text;
|
||||||
@@ -270,6 +301,7 @@ public class LoginManager : MonoBehaviour
|
|||||||
void OnRegister()
|
void OnRegister()
|
||||||
{
|
{
|
||||||
if (_authInProgress) return;
|
if (_authInProgress) return;
|
||||||
|
if (_keepaliveRoutine != null && !string.IsNullOrEmpty(AuthToken)) return;
|
||||||
|
|
||||||
string username = usernameInputRegister.text;
|
string username = usernameInputRegister.text;
|
||||||
string email = emailInputRegister != null ? emailInputRegister.text : "";
|
string email = emailInputRegister != null ? emailInputRegister.text : "";
|
||||||
@@ -374,6 +406,7 @@ public class LoginManager : MonoBehaviour
|
|||||||
AuthToken = resp.token;
|
AuthToken = resp.token;
|
||||||
PlayerPrefs.SetString(PlayerPrefsAuthKey, resp.token);
|
PlayerPrefs.SetString(PlayerPrefsAuthKey, resp.token);
|
||||||
PlayerPrefs.Save();
|
PlayerPrefs.Save();
|
||||||
|
StartKeepalive();
|
||||||
|
|
||||||
bool profileOk = false;
|
bool profileOk = false;
|
||||||
string profileErr = null;
|
string profileErr = null;
|
||||||
@@ -799,4 +832,127 @@ public class LoginManager : MonoBehaviour
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool IsAppInForeground => !_appPaused && _appFocused;
|
||||||
|
|
||||||
|
void OnApplicationPause(bool paused)
|
||||||
|
{
|
||||||
|
_appPaused = paused;
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnApplicationFocus(bool hasFocus)
|
||||||
|
{
|
||||||
|
_appFocused = hasFocus;
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnDestroy()
|
||||||
|
{
|
||||||
|
if (instance == this)
|
||||||
|
StopKeepalive();
|
||||||
|
}
|
||||||
|
|
||||||
|
void StartKeepalive()
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(AuthToken)) return;
|
||||||
|
if (_keepaliveRoutine != null) return;
|
||||||
|
_handlingKeepaliveUnauthorized = false;
|
||||||
|
_keepaliveRoutine = StartCoroutine(KeepaliveLoopCoroutine());
|
||||||
|
}
|
||||||
|
|
||||||
|
void StopKeepalive()
|
||||||
|
{
|
||||||
|
if (_keepaliveRoutine == null) return;
|
||||||
|
StopCoroutine(_keepaliveRoutine);
|
||||||
|
_keepaliveRoutine = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
IEnumerator KeepaliveLoopCoroutine()
|
||||||
|
{
|
||||||
|
while (!string.IsNullOrEmpty(AuthToken))
|
||||||
|
{
|
||||||
|
while (!IsAppInForeground && !string.IsNullOrEmpty(AuthToken))
|
||||||
|
yield return null;
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(AuthToken))
|
||||||
|
break;
|
||||||
|
|
||||||
|
yield return KeepalivePingCoroutine();
|
||||||
|
if (string.IsNullOrEmpty(AuthToken))
|
||||||
|
break;
|
||||||
|
|
||||||
|
float elapsed = 0f;
|
||||||
|
while (elapsed < KeepaliveIntervalSeconds && !string.IsNullOrEmpty(AuthToken))
|
||||||
|
{
|
||||||
|
if (!IsAppInForeground)
|
||||||
|
{
|
||||||
|
while (!IsAppInForeground && !string.IsNullOrEmpty(AuthToken))
|
||||||
|
yield return null;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
elapsed += Time.unscaledDeltaTime;
|
||||||
|
yield return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
_keepaliveRoutine = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
IEnumerator KeepalivePingCoroutine()
|
||||||
|
{
|
||||||
|
if (string.IsNullOrEmpty(AuthToken))
|
||||||
|
yield break;
|
||||||
|
|
||||||
|
string url = AuthBaseUrl + "/auth/keepalive";
|
||||||
|
using (var request = new UnityWebRequest(url, UnityWebRequest.kHttpVerbPOST))
|
||||||
|
{
|
||||||
|
request.uploadHandler = new UploadHandlerRaw(Array.Empty<byte>());
|
||||||
|
request.downloadHandler = new DownloadHandlerBuffer();
|
||||||
|
request.SetRequestHeader("Content-Type", "application/json");
|
||||||
|
request.SetRequestHeader("Authorization", "Bearer " + AuthToken);
|
||||||
|
|
||||||
|
yield return request.SendWebRequest();
|
||||||
|
|
||||||
|
if (request.responseCode == 401)
|
||||||
|
{
|
||||||
|
string text = request.downloadHandler != null ? request.downloadHandler.text : "";
|
||||||
|
string err = "Session expired. Please sign in again.";
|
||||||
|
if (!string.IsNullOrEmpty(text))
|
||||||
|
{
|
||||||
|
AuthApiResponse resp = JsonUtility.FromJson<AuthApiResponse>(text);
|
||||||
|
if (resp != null && !string.IsNullOrEmpty(resp.error))
|
||||||
|
err = resp.error;
|
||||||
|
}
|
||||||
|
|
||||||
|
HandleKeepaliveUnauthorized(err);
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (request.result != UnityWebRequest.Result.Success &&
|
||||||
|
request.result != UnityWebRequest.Result.ProtocolError)
|
||||||
|
{
|
||||||
|
Logger.Log("auth/keepalive network error: " + (string.IsNullOrEmpty(request.error) ? "Network error" : request.error));
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (request.responseCode < 200 || request.responseCode >= 300)
|
||||||
|
Logger.Log("auth/keepalive failed: HTTP " + request.responseCode);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void HandleKeepaliveUnauthorized(string message)
|
||||||
|
{
|
||||||
|
if (_handlingKeepaliveUnauthorized) return;
|
||||||
|
_handlingKeepaliveUnauthorized = true;
|
||||||
|
|
||||||
|
InvalidateStoredSession();
|
||||||
|
SetBusy(false);
|
||||||
|
|
||||||
|
if (error_txt != null)
|
||||||
|
error_txt.text = string.IsNullOrEmpty(message) ? "Session expired. Please sign in again." : message;
|
||||||
|
|
||||||
|
Scene active = SceneManager.GetActiveScene();
|
||||||
|
if (active.buildIndex != 0 && active.name != "Intro")
|
||||||
|
SceneManager.LoadScene(0);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -47,6 +47,14 @@ public class MainMenuManager : MonoBehaviour
|
|||||||
public TMP_Text txtWithdrawStatus;
|
public TMP_Text txtWithdrawStatus;
|
||||||
private bool isCoinBuyInProgress;
|
private bool isCoinBuyInProgress;
|
||||||
|
|
||||||
|
[Header("Settings")]
|
||||||
|
public ProfileInfoFetcher profileInfoFetcher;
|
||||||
|
public TMP_Text txtUsername;
|
||||||
|
public TMP_Text txtEmail;
|
||||||
|
public TMP_Text txtAge,txtMatches,txtWinRatio;
|
||||||
|
public TMP_Text txtId;
|
||||||
|
public Button btnLogout;
|
||||||
|
|
||||||
[Header("Audio")]
|
[Header("Audio")]
|
||||||
public ToggleButton toggleSfx;
|
public ToggleButton toggleSfx;
|
||||||
public ToggleButton toggleMusic;
|
public ToggleButton toggleMusic;
|
||||||
@@ -77,6 +85,7 @@ public class MainMenuManager : MonoBehaviour
|
|||||||
if (success)
|
if (success)
|
||||||
{
|
{
|
||||||
OnUserUpdated(user);
|
OnUserUpdated(user);
|
||||||
|
RefreshSettingsProfile();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -87,6 +96,8 @@ public class MainMenuManager : MonoBehaviour
|
|||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
RefreshSettingsProfile();
|
||||||
|
|
||||||
btnBuyUsd5.onClick.AddListener(() => OnBuy(RcPack.Usd5));
|
btnBuyUsd5.onClick.AddListener(() => OnBuy(RcPack.Usd5));
|
||||||
btnBuyUsd20.onClick.AddListener(() => OnBuy(RcPack.Usd20));
|
btnBuyUsd20.onClick.AddListener(() => OnBuy(RcPack.Usd20));
|
||||||
btnBuyUsd50.onClick.AddListener(() => OnBuy(RcPack.Usd50));
|
btnBuyUsd50.onClick.AddListener(() => OnBuy(RcPack.Usd50));
|
||||||
@@ -112,6 +123,9 @@ public class MainMenuManager : MonoBehaviour
|
|||||||
toggleSfx.SetIsOn(AudioManager.instance.IsSFXOn());
|
toggleSfx.SetIsOn(AudioManager.instance.IsSFXOn());
|
||||||
toggleMusic.SetIsOn(AudioManager.instance.IsMusicOn());
|
toggleMusic.SetIsOn(AudioManager.instance.IsMusicOn());
|
||||||
|
|
||||||
|
if (btnLogout != null)
|
||||||
|
btnLogout.onClick.AddListener(OnLogout);
|
||||||
|
|
||||||
if (!LevelLoadManager.BlocksMainMenuSettingsBootstrap)
|
if (!LevelLoadManager.BlocksMainMenuSettingsBootstrap)
|
||||||
StartCoroutine(CoBootstrapSettingsWithoutLoader());
|
StartCoroutine(CoBootstrapSettingsWithoutLoader());
|
||||||
}
|
}
|
||||||
@@ -122,6 +136,14 @@ public class MainMenuManager : MonoBehaviour
|
|||||||
toggleMusic.onToggleValueChanged.RemoveListener(OnToggleMusic);
|
toggleMusic.onToggleValueChanged.RemoveListener(OnToggleMusic);
|
||||||
if (btnTutorial != null && btnTutorial != btnPlay)
|
if (btnTutorial != null && btnTutorial != btnPlay)
|
||||||
btnTutorial.onClick.RemoveListener(OnPlayTutorial);
|
btnTutorial.onClick.RemoveListener(OnPlayTutorial);
|
||||||
|
if (btnLogout != null)
|
||||||
|
btnLogout.onClick.RemoveListener(OnLogout);
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnLogout()
|
||||||
|
{
|
||||||
|
LoginManager.Logout();
|
||||||
|
SceneManager.LoadScene(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
void OnToggleSfx(bool isOn)
|
void OnToggleSfx(bool isOn)
|
||||||
@@ -334,8 +356,18 @@ public class MainMenuManager : MonoBehaviour
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
void SetStatsPanelVisible(bool visible)
|
||||||
|
{
|
||||||
|
if (statsPanel == null)
|
||||||
|
return;
|
||||||
|
statsPanel.SetActive(visible);
|
||||||
|
Transform topPanel = statsPanel.transform.parent;
|
||||||
|
if (topPanel != null)
|
||||||
|
topPanel.gameObject.SetActive(visible);
|
||||||
|
}
|
||||||
|
|
||||||
public void ShowMainMenuScreen(){
|
public void ShowMainMenuScreen(){
|
||||||
statsPanel.SetActive(true);
|
SetStatsPanelVisible(true);
|
||||||
mainMenuScreen.SetActive(true);
|
mainMenuScreen.SetActive(true);
|
||||||
gameModesScreen.SetActive(false);
|
gameModesScreen.SetActive(false);
|
||||||
dummyBuyScreen.SetActive(false);
|
dummyBuyScreen.SetActive(false);
|
||||||
@@ -344,7 +376,7 @@ public class MainMenuManager : MonoBehaviour
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void ShowGameModesScreen(){
|
public void ShowGameModesScreen(){
|
||||||
statsPanel.SetActive(true);
|
SetStatsPanelVisible(true);
|
||||||
mainMenuScreen.SetActive(false);
|
mainMenuScreen.SetActive(false);
|
||||||
gameModesScreen.SetActive(true);
|
gameModesScreen.SetActive(true);
|
||||||
dummyBuyScreen.SetActive(false);
|
dummyBuyScreen.SetActive(false);
|
||||||
@@ -353,7 +385,7 @@ public class MainMenuManager : MonoBehaviour
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void ShowDummyBuyScreen(){
|
public void ShowDummyBuyScreen(){
|
||||||
statsPanel.SetActive(false);
|
SetStatsPanelVisible(false);
|
||||||
mainMenuScreen.SetActive(false);
|
mainMenuScreen.SetActive(false);
|
||||||
gameModesScreen.SetActive(false);
|
gameModesScreen.SetActive(false);
|
||||||
dummyBuyScreen.SetActive(true);
|
dummyBuyScreen.SetActive(true);
|
||||||
@@ -362,7 +394,7 @@ public class MainMenuManager : MonoBehaviour
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void ShowWithdrawalScreen(){
|
public void ShowWithdrawalScreen(){
|
||||||
statsPanel.SetActive(false);
|
SetStatsPanelVisible(false);
|
||||||
mainMenuScreen.SetActive(false);
|
mainMenuScreen.SetActive(false);
|
||||||
gameModesScreen.SetActive(false);
|
gameModesScreen.SetActive(false);
|
||||||
dummyBuyScreen.SetActive(false);
|
dummyBuyScreen.SetActive(false);
|
||||||
@@ -372,12 +404,49 @@ public class MainMenuManager : MonoBehaviour
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void ShowSettingsScreen(){
|
public void ShowSettingsScreen(){
|
||||||
statsPanel.SetActive(false);
|
SetStatsPanelVisible(false);
|
||||||
mainMenuScreen.SetActive(false);
|
mainMenuScreen.SetActive(false);
|
||||||
gameModesScreen.SetActive(false);
|
gameModesScreen.SetActive(false);
|
||||||
dummyBuyScreen.SetActive(false);
|
dummyBuyScreen.SetActive(false);
|
||||||
withdrawalScreen.SetActive(false);
|
withdrawalScreen.SetActive(false);
|
||||||
settingsScreen.SetActive(true);
|
settingsScreen.SetActive(true);
|
||||||
|
RefreshSettingsProfile();
|
||||||
|
}
|
||||||
|
|
||||||
|
void RefreshSettingsProfile()
|
||||||
|
{
|
||||||
|
if (profileInfoFetcher == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
UserData user = LoginManager.CurrentUser;
|
||||||
|
if (user == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
profileInfoFetcher.GetPlayerProfile(user.id, (success, error, profile) =>
|
||||||
|
{
|
||||||
|
if (!success || profile == null)
|
||||||
|
{
|
||||||
|
Debug.LogWarning("Settings profile fetch failed: " + (error ?? "unknown"));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
ApplySettingsProfile(profile);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
void ApplySettingsProfile(PlayerProfileApiResponse profile)
|
||||||
|
{
|
||||||
|
if (txtUsername != null)
|
||||||
|
txtUsername.text = profile.username ?? "";
|
||||||
|
if (txtEmail != null)
|
||||||
|
txtEmail.text = profile.email ?? "";
|
||||||
|
if (txtId != null)
|
||||||
|
txtId.text = profile.player_id.ToString();
|
||||||
|
if (txtAge != null)
|
||||||
|
txtAge.text = profile.days_since_registration.ToString();
|
||||||
|
if (txtMatches != null)
|
||||||
|
txtMatches.text = profile.matches_played.ToString();
|
||||||
|
if (txtWinRatio != null)
|
||||||
|
txtWinRatio.text = (profile.win_ratio * 100f).ToString("0.#") + "%";
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -89,6 +89,13 @@ public class NetManager : NetworkManager
|
|||||||
|
|
||||||
public override void OnServerDisconnect(NetworkConnectionToClient conn)
|
public override void OnServerDisconnect(NetworkConnectionToClient conn)
|
||||||
{
|
{
|
||||||
|
if (conn != null && conn.identity != null)
|
||||||
|
{
|
||||||
|
var netPlayer = conn.identity.GetComponent<NetPlayer>();
|
||||||
|
if (netPlayer != null && GameManager.instance != null)
|
||||||
|
GameManager.instance.OnDedicatedMatchPlayerDisconnected(netPlayer.myTeam);
|
||||||
|
}
|
||||||
|
|
||||||
if (conn != null)
|
if (conn != null)
|
||||||
Logger.Log($"Mirror server: client disconnected (connId={conn.connectionId})");
|
Logger.Log($"Mirror server: client disconnected (connId={conn.connectionId})");
|
||||||
base.OnServerDisconnect(conn);
|
base.OnServerDisconnect(conn);
|
||||||
|
|||||||
@@ -0,0 +1,56 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections;
|
||||||
|
using UnityEngine;
|
||||||
|
using UnityEngine.Networking;
|
||||||
|
|
||||||
|
public class ProfileInfoFetcher : MonoBehaviour
|
||||||
|
{
|
||||||
|
/// <summary>GET /players/:playerId/profile. Callback (success, errorOrNull, profileOrNull).</summary>
|
||||||
|
public void GetPlayerProfile(int playerId, Action<bool, string, PlayerProfileApiResponse> onComplete)
|
||||||
|
{
|
||||||
|
StartCoroutine(FetchPlayerProfileCoroutine(playerId, onComplete));
|
||||||
|
}
|
||||||
|
|
||||||
|
IEnumerator FetchPlayerProfileCoroutine(int playerId, Action<bool, string, PlayerProfileApiResponse> onComplete)
|
||||||
|
{
|
||||||
|
string url = LoginManager.AuthBaseUrl + "/players/" + playerId + "/profile";
|
||||||
|
using (var request = UnityWebRequest.Get(url))
|
||||||
|
{
|
||||||
|
request.downloadHandler = new DownloadHandlerBuffer();
|
||||||
|
if (!string.IsNullOrEmpty(LoginManager.AuthToken))
|
||||||
|
request.SetRequestHeader("Authorization", "Bearer " + LoginManager.AuthToken);
|
||||||
|
|
||||||
|
yield return request.SendWebRequest();
|
||||||
|
|
||||||
|
string text = request.downloadHandler != null ? request.downloadHandler.text : "";
|
||||||
|
|
||||||
|
if (request.result != UnityWebRequest.Result.Success &&
|
||||||
|
request.result != UnityWebRequest.Result.ProtocolError)
|
||||||
|
{
|
||||||
|
onComplete?.Invoke(false, string.IsNullOrEmpty(request.error) ? "Network error" : request.error, null);
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (request.responseCode < 200 || request.responseCode >= 300)
|
||||||
|
{
|
||||||
|
onComplete?.Invoke(false, string.IsNullOrEmpty(text) ? "Request failed (" + request.responseCode + ")" : text, null);
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (string.IsNullOrEmpty(text))
|
||||||
|
{
|
||||||
|
onComplete?.Invoke(false, "Empty response from server", null);
|
||||||
|
yield break;
|
||||||
|
}
|
||||||
|
|
||||||
|
PlayerProfileApiResponse resp = JsonUtility.FromJson<PlayerProfileApiResponse>(text);
|
||||||
|
if (resp != null && resp.ok)
|
||||||
|
onComplete?.Invoke(true, null, resp);
|
||||||
|
else
|
||||||
|
{
|
||||||
|
string err = resp != null && !string.IsNullOrEmpty(resp.error) ? resp.error : "Request failed";
|
||||||
|
onComplete?.Invoke(false, err, null);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5e6e403cd7bcf0149bad56dbad78c302
|
||||||
+55
-4
@@ -6,6 +6,7 @@ using UnityEngine.EventSystems;
|
|||||||
public class Puck : NetworkBehaviour
|
public class Puck : NetworkBehaviour
|
||||||
{
|
{
|
||||||
[HideInInspector]public Rigidbody2D rb;
|
[HideInInspector]public Rigidbody2D rb;
|
||||||
|
Collider2D col;
|
||||||
[SyncVar]
|
[SyncVar]
|
||||||
public bool isSelected;
|
public bool isSelected;
|
||||||
public LineRenderer lineRenderer;
|
public LineRenderer lineRenderer;
|
||||||
@@ -30,6 +31,7 @@ public class Puck : NetworkBehaviour
|
|||||||
UpdateTeam();
|
UpdateTeam();
|
||||||
markerStartScale = selectedMarker.localScale;
|
markerStartScale = selectedMarker.localScale;
|
||||||
rb=GetComponent<Rigidbody2D>();
|
rb=GetComponent<Rigidbody2D>();
|
||||||
|
col = GetComponent<Collider2D>();
|
||||||
startPosition = transform.position;
|
startPosition = transform.position;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -52,7 +54,9 @@ public class Puck : NetworkBehaviour
|
|||||||
GameEvents.OnSelectedPuckChanged -= OnSelectedPuckChanged;
|
GameEvents.OnSelectedPuckChanged -= OnSelectedPuckChanged;
|
||||||
GameManager.OnTeamChanged -= OnTeamChanged;
|
GameManager.OnTeamChanged -= OnTeamChanged;
|
||||||
|
|
||||||
GameManager.instance.DisposePuck(this);
|
RestoreAfterReset();
|
||||||
|
if (GameManager.instance != null)
|
||||||
|
GameManager.instance.DisposePuck(this);
|
||||||
}
|
}
|
||||||
public Vector3 lineEnd;
|
public Vector3 lineEnd;
|
||||||
void Update()
|
void Update()
|
||||||
@@ -146,10 +150,28 @@ public class Puck : NetworkBehaviour
|
|||||||
AudioManager.instance.PlayPuckHit(vol);
|
AudioManager.instance.PlayPuckHit(vol);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Coroutine coroutineReset;
|
||||||
|
bool holdingCollisionLock;
|
||||||
public void Reset(Vector3? position = null, float duration = 0.5f)
|
public void Reset(Vector3? position = null, float duration = 0.5f)
|
||||||
{
|
{
|
||||||
Vector3 pos = position ?? startPosition;
|
Vector3 pos = position ?? startPosition;
|
||||||
StartCoroutine(CoroutineReset(pos, duration));
|
if (coroutineReset != null)
|
||||||
|
{
|
||||||
|
StopCoroutine(coroutineReset);
|
||||||
|
RestoreAfterReset();
|
||||||
|
}
|
||||||
|
coroutineReset = StartCoroutine(CoroutineReset(pos, duration));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SetCollisionsEnabled(bool enabled)
|
||||||
|
{
|
||||||
|
if (col != null)
|
||||||
|
col.enabled = enabled;
|
||||||
|
if (rb != null && !enabled)
|
||||||
|
{
|
||||||
|
rb.linearVelocity = Vector2.zero;
|
||||||
|
rb.angularVelocity = 0f;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Coroutine coroutineScheduleReset;
|
Coroutine coroutineScheduleReset;
|
||||||
public void ScheduleReset(Vector3 position, float duration = 0.5f){
|
public void ScheduleReset(Vector3 position, float duration = 0.5f){
|
||||||
@@ -188,15 +210,44 @@ public class Puck : NetworkBehaviour
|
|||||||
}
|
}
|
||||||
|
|
||||||
IEnumerator CoroutineReset(Vector3 pos, float duration){
|
IEnumerator CoroutineReset(Vector3 pos, float duration){
|
||||||
|
if (GameManager.instance != null)
|
||||||
|
{
|
||||||
|
GameManager.instance.PushResetCollisionLock();
|
||||||
|
holdingCollisionLock = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
rb.linearVelocity = Vector2.zero;
|
||||||
|
rb.angularVelocity = 0f;
|
||||||
|
|
||||||
float t=0;
|
float t=0;
|
||||||
Vector3 pos1 = transform.position;
|
Vector3 pos1 = transform.position;
|
||||||
Quaternion rot1 = transform.rotation;
|
Quaternion rot1 = transform.rotation;
|
||||||
while(t<duration){
|
while(t<duration){
|
||||||
t+=Time.deltaTime;
|
t+=Time.deltaTime;
|
||||||
transform.position = Vector3.Lerp(pos1, pos, t/duration);
|
float u = Mathf.Clamp01(t/duration);
|
||||||
transform.rotation = Quaternion.Lerp(rot1, Quaternion.identity, t/duration);
|
transform.position = Vector3.Lerp(pos1, pos, u);
|
||||||
|
transform.rotation = Quaternion.Lerp(rot1, Quaternion.identity, u);
|
||||||
yield return null;
|
yield return null;
|
||||||
}
|
}
|
||||||
|
transform.position = pos;
|
||||||
|
transform.rotation = Quaternion.identity;
|
||||||
|
|
||||||
|
RestoreAfterReset();
|
||||||
|
}
|
||||||
|
|
||||||
|
void RestoreAfterReset()
|
||||||
|
{
|
||||||
|
if (rb != null)
|
||||||
|
{
|
||||||
|
rb.linearVelocity = Vector2.zero;
|
||||||
|
rb.angularVelocity = 0f;
|
||||||
|
}
|
||||||
|
if (holdingCollisionLock && GameManager.instance != null)
|
||||||
|
{
|
||||||
|
GameManager.instance.PopResetCollisionLock();
|
||||||
|
holdingCollisionLock = false;
|
||||||
|
}
|
||||||
|
coroutineReset = null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -56,6 +56,7 @@ public class ServerAutoClose : MonoBehaviour
|
|||||||
Logger.Log("All players left, exiting");
|
Logger.Log("All players left, exiting");
|
||||||
else
|
else
|
||||||
Logger.Log("No players joined, exiting");
|
Logger.Log("No players joined, exiting");
|
||||||
|
// ReportDedicatedMatchRoomClosed settles /winner first when escrow is open.
|
||||||
GameManager.ReportDedicatedMatchRoomClosed();
|
GameManager.ReportDedicatedMatchRoomClosed();
|
||||||
Application.Quit();
|
Application.Quit();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,14 @@
|
|||||||
|
using System;
|
||||||
|
|
||||||
|
[Serializable]
|
||||||
|
public class PlayerProfileApiResponse
|
||||||
|
{
|
||||||
|
public bool ok;
|
||||||
|
public string error;
|
||||||
|
public int player_id;
|
||||||
|
public string username;
|
||||||
|
public string email;
|
||||||
|
public int days_since_registration;
|
||||||
|
public int matches_played;
|
||||||
|
public float win_ratio;
|
||||||
|
}
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: acfc3a6cd73c2234081774fcdc39082a
|
||||||
@@ -20,820 +20,15 @@ MonoBehaviour:
|
|||||||
rid: 1400252592429989960
|
rid: 1400252592429989960
|
||||||
m_OverrideGlobalSceneList: 1
|
m_OverrideGlobalSceneList: 1
|
||||||
m_Scenes:
|
m_Scenes:
|
||||||
|
- m_enabled: 1
|
||||||
|
m_path: Assets/Scenes/Intro.unity
|
||||||
- m_enabled: 1
|
- m_enabled: 1
|
||||||
m_path: Assets/Scenes/MainMenu.unity
|
m_path: Assets/Scenes/MainMenu.unity
|
||||||
- m_enabled: 1
|
- m_enabled: 1
|
||||||
m_path: Assets/Scenes/Game.unity
|
m_path: Assets/Scenes/Game.unity
|
||||||
m_ScriptingDefines: []
|
m_ScriptingDefines: []
|
||||||
m_PlayerSettingsYaml:
|
m_PlayerSettingsYaml:
|
||||||
m_Settings:
|
m_Settings: []
|
||||||
- line: '| PlayerSettings:'
|
|
||||||
- line: '| m_ObjectHideFlags: 0'
|
|
||||||
- line: '| serializedVersion: 28'
|
|
||||||
- line: '| productGUID: 73659953e96de4447bb9eeb64c3da355'
|
|
||||||
- line: '| AndroidProfiler: 0'
|
|
||||||
- line: '| AndroidFilterTouchesWhenObscured: 0'
|
|
||||||
- line: '| AndroidEnableSustainedPerformanceMode: 0'
|
|
||||||
- line: '| defaultScreenOrientation: 4'
|
|
||||||
- line: '| targetDevice: 2'
|
|
||||||
- line: '| useOnDemandResources: 0'
|
|
||||||
- line: '| accelerometerFrequency: 60'
|
|
||||||
- line: '| companyName: Xperience'
|
|
||||||
- line: '| productName: WalkInvest_Soccer'
|
|
||||||
- line: '| defaultCursor: {instanceID: 0}'
|
|
||||||
- line: '| cursorHotspot: {x: 0, y: 0}'
|
|
||||||
- line: '| m_SplashScreenBackgroundColor: {r: 0.13725491, g: 0.12156863, b:
|
|
||||||
0.1254902, a: 1}'
|
|
||||||
- line: '| m_ShowUnitySplashScreen: 1'
|
|
||||||
- line: '| m_ShowUnitySplashLogo: 1'
|
|
||||||
- line: '| m_SplashScreenOverlayOpacity: 1'
|
|
||||||
- line: '| m_SplashScreenAnimation: 1'
|
|
||||||
- line: '| m_SplashScreenLogoStyle: 1'
|
|
||||||
- line: '| m_SplashScreenDrawMode: 0'
|
|
||||||
- line: '| m_SplashScreenBackgroundAnimationZoom: 1'
|
|
||||||
- line: '| m_SplashScreenLogoAnimationZoom: 1'
|
|
||||||
- line: '| m_SplashScreenBackgroundLandscapeAspect: 1'
|
|
||||||
- line: '| m_SplashScreenBackgroundPortraitAspect: 1'
|
|
||||||
- line: '| m_SplashScreenBackgroundLandscapeUvs:'
|
|
||||||
- line: '| serializedVersion: 2'
|
|
||||||
- line: '| x: 0'
|
|
||||||
- line: '| y: 0'
|
|
||||||
- line: '| width: 1'
|
|
||||||
- line: '| height: 1'
|
|
||||||
- line: '| m_SplashScreenBackgroundPortraitUvs:'
|
|
||||||
- line: '| serializedVersion: 2'
|
|
||||||
- line: '| x: 0'
|
|
||||||
- line: '| y: 0'
|
|
||||||
- line: '| width: 1'
|
|
||||||
- line: '| height: 1'
|
|
||||||
- line: '| m_SplashScreenLogos: []'
|
|
||||||
- line: '| m_VirtualRealitySplashScreen: {instanceID: 0}'
|
|
||||||
- line: '| m_HolographicTrackingLossScreen: {instanceID: 0}'
|
|
||||||
- line: '| defaultScreenWidth: 1920'
|
|
||||||
- line: '| defaultScreenHeight: 1080'
|
|
||||||
- line: '| defaultScreenWidthWeb: 960'
|
|
||||||
- line: '| defaultScreenHeightWeb: 600'
|
|
||||||
- line: '| m_StereoRenderingPath: 0'
|
|
||||||
- line: '| m_ActiveColorSpace: 1'
|
|
||||||
- line: '| unsupportedMSAAFallback: 0'
|
|
||||||
- line: '| m_SpriteBatchMaxVertexCount: 65535'
|
|
||||||
- line: '| m_SpriteBatchVertexThreshold: 300'
|
|
||||||
- line: '| m_MTRendering: 1'
|
|
||||||
- line: '| mipStripping: 0'
|
|
||||||
- line: '| numberOfMipsStripped: 0'
|
|
||||||
- line: '| numberOfMipsStrippedPerMipmapLimitGroup: {}'
|
|
||||||
- line: '| m_StackTraceTypes: 010000000100000001000000010000000100000001000000'
|
|
||||||
- line: '| iosShowActivityIndicatorOnLoading: -1'
|
|
||||||
- line: '| androidShowActivityIndicatorOnLoading: -1'
|
|
||||||
- line: '| iosUseCustomAppBackgroundBehavior: 0'
|
|
||||||
- line: '| allowedAutorotateToPortrait: 1'
|
|
||||||
- line: '| allowedAutorotateToPortraitUpsideDown: 1'
|
|
||||||
- line: '| allowedAutorotateToLandscapeRight: 0'
|
|
||||||
- line: '| allowedAutorotateToLandscapeLeft: 0'
|
|
||||||
- line: '| useOSAutorotation: 1'
|
|
||||||
- line: '| use32BitDisplayBuffer: 1'
|
|
||||||
- line: '| preserveFramebufferAlpha: 0'
|
|
||||||
- line: '| disableDepthAndStencilBuffers: 0'
|
|
||||||
- line: '| androidStartInFullscreen: 1'
|
|
||||||
- line: '| androidRenderOutsideSafeArea: 1'
|
|
||||||
- line: '| androidUseSwappy: 1'
|
|
||||||
- line: '| androidBlitType: 0'
|
|
||||||
- line: '| androidResizeableActivity: 1'
|
|
||||||
- line: '| androidDefaultWindowWidth: 1920'
|
|
||||||
- line: '| androidDefaultWindowHeight: 1080'
|
|
||||||
- line: '| androidMinimumWindowWidth: 400'
|
|
||||||
- line: '| androidMinimumWindowHeight: 300'
|
|
||||||
- line: '| androidFullscreenMode: 1'
|
|
||||||
- line: '| androidAutoRotationBehavior: 1'
|
|
||||||
- line: '| androidPredictiveBackSupport: 0'
|
|
||||||
- line: '| androidApplicationEntry: 2'
|
|
||||||
- line: '| defaultIsNativeResolution: 1'
|
|
||||||
- line: '| macRetinaSupport: 1'
|
|
||||||
- line: '| runInBackground: 0'
|
|
||||||
- line: '| muteOtherAudioSources: 0'
|
|
||||||
- line: '| Prepare IOS For Recording: 0'
|
|
||||||
- line: '| Force IOS Speakers When Recording: 0'
|
|
||||||
- line: '| audioSpatialExperience: 0'
|
|
||||||
- line: '| deferSystemGesturesMode: 0'
|
|
||||||
- line: '| hideHomeButton: 0'
|
|
||||||
- line: '| submitAnalytics: 1'
|
|
||||||
- line: '| usePlayerLog: 1'
|
|
||||||
- line: '| dedicatedServerOptimizations: 1'
|
|
||||||
- line: '| bakeCollisionMeshes: 0'
|
|
||||||
- line: '| forceSingleInstance: 0'
|
|
||||||
- line: '| useFlipModelSwapchain: 1'
|
|
||||||
- line: '| resizableWindow: 0'
|
|
||||||
- line: '| useMacAppStoreValidation: 0'
|
|
||||||
- line: '| macAppStoreCategory: public.app-category.games'
|
|
||||||
- line: '| gpuSkinning: 0'
|
|
||||||
- line: '| meshDeformation: 0'
|
|
||||||
- line: '| xboxPIXTextureCapture: 0'
|
|
||||||
- line: '| xboxEnableAvatar: 0'
|
|
||||||
- line: '| xboxEnableKinect: 0'
|
|
||||||
- line: '| xboxEnableKinectAutoTracking: 0'
|
|
||||||
- line: '| xboxEnableFitness: 0'
|
|
||||||
- line: '| visibleInBackground: 1'
|
|
||||||
- line: '| allowFullscreenSwitch: 1'
|
|
||||||
- line: '| fullscreenMode: 1'
|
|
||||||
- line: '| xboxSpeechDB: 0'
|
|
||||||
- line: '| xboxEnableHeadOrientation: 0'
|
|
||||||
- line: '| xboxEnableGuest: 0'
|
|
||||||
- line: '| xboxEnablePIXSampling: 0'
|
|
||||||
- line: '| metalFramebufferOnly: 0'
|
|
||||||
- line: '| xboxOneResolution: 0'
|
|
||||||
- line: '| xboxOneSResolution: 0'
|
|
||||||
- line: '| xboxOneXResolution: 3'
|
|
||||||
- line: '| xboxOneMonoLoggingLevel: 0'
|
|
||||||
- line: '| xboxOneLoggingLevel: 1'
|
|
||||||
- line: '| xboxOneDisableEsram: 0'
|
|
||||||
- line: '| xboxOneEnableTypeOptimization: 0'
|
|
||||||
- line: '| xboxOnePresentImmediateThreshold: 0'
|
|
||||||
- line: '| switchQueueCommandMemory: 1048576'
|
|
||||||
- line: '| switchQueueControlMemory: 16384'
|
|
||||||
- line: '| switchQueueComputeMemory: 262144'
|
|
||||||
- line: '| switchNVNShaderPoolsGranularity: 33554432'
|
|
||||||
- line: '| switchNVNDefaultPoolsGranularity: 16777216'
|
|
||||||
- line: '| switchNVNOtherPoolsGranularity: 16777216'
|
|
||||||
- line: '| switchGpuScratchPoolGranularity: 2097152'
|
|
||||||
- line: '| switchAllowGpuScratchShrinking: 0'
|
|
||||||
- line: '| switchNVNMaxPublicTextureIDCount: 0'
|
|
||||||
- line: '| switchNVNMaxPublicSamplerIDCount: 0'
|
|
||||||
- line: '| switchMaxWorkerMultiple: 8'
|
|
||||||
- line: '| switchNVNGraphicsFirmwareMemory: 32'
|
|
||||||
- line: '| vulkanNumSwapchainBuffers: 3'
|
|
||||||
- line: '| vulkanEnableSetSRGBWrite: 0'
|
|
||||||
- line: '| vulkanEnablePreTransform: 0'
|
|
||||||
- line: '| vulkanEnableLateAcquireNextImage: 0'
|
|
||||||
- line: '| vulkanEnableCommandBufferRecycling: 1'
|
|
||||||
- line: '| loadStoreDebugModeEnabled: 0'
|
|
||||||
- line: '| visionOSBundleVersion: 1.0'
|
|
||||||
- line: '| tvOSBundleVersion: 1.0'
|
|
||||||
- line: '| bundleVersion: 0.4'
|
|
||||||
- line: '| preloadedAssets: []'
|
|
||||||
- line: '| metroInputSource: 0'
|
|
||||||
- line: '| wsaTransparentSwapchain: 0'
|
|
||||||
- line: '| m_HolographicPauseOnTrackingLoss: 1'
|
|
||||||
- line: '| xboxOneDisableKinectGpuReservation: 1'
|
|
||||||
- line: '| xboxOneEnable7thCore: 1'
|
|
||||||
- line: '| vrSettings:'
|
|
||||||
- line: '| enable360StereoCapture: 0'
|
|
||||||
- line: '| isWsaHolographicRemotingEnabled: 0'
|
|
||||||
- line: '| enableFrameTimingStats: 0'
|
|
||||||
- line: '| enableOpenGLProfilerGPURecorders: 1'
|
|
||||||
- line: '| allowHDRDisplaySupport: 0'
|
|
||||||
- line: '| useHDRDisplay: 0'
|
|
||||||
- line: '| hdrBitDepth: 0'
|
|
||||||
- line: '| m_ColorGamuts: 00000000'
|
|
||||||
- line: '| targetPixelDensity: 30'
|
|
||||||
- line: '| resolutionScalingMode: 0'
|
|
||||||
- line: '| resetResolutionOnWindowResize: 0'
|
|
||||||
- line: '| androidSupportedAspectRatio: 1'
|
|
||||||
- line: '| androidMaxAspectRatio: 2.4'
|
|
||||||
- line: '| androidMinAspectRatio: 1'
|
|
||||||
- line: '| applicationIdentifier:'
|
|
||||||
- line: '| Standalone: com.DefaultCompany.2D-URP'
|
|
||||||
- line: '| buildNumber:'
|
|
||||||
- line: '| Standalone: 0'
|
|
||||||
- line: '| VisionOS: 0'
|
|
||||||
- line: '| iPhone: 0'
|
|
||||||
- line: '| tvOS: 0'
|
|
||||||
- line: '| overrideDefaultApplicationIdentifier: 1'
|
|
||||||
- line: '| AndroidBundleVersionCode: 1'
|
|
||||||
- line: '| AndroidMinSdkVersion: 23'
|
|
||||||
- line: '| AndroidTargetSdkVersion: 0'
|
|
||||||
- line: '| AndroidPreferredInstallLocation: 1'
|
|
||||||
- line: '| aotOptions: '
|
|
||||||
- line: '| stripEngineCode: 1'
|
|
||||||
- line: '| iPhoneStrippingLevel: 0'
|
|
||||||
- line: '| iPhoneScriptCallOptimization: 0'
|
|
||||||
- line: '| ForceInternetPermission: 0'
|
|
||||||
- line: '| ForceSDCardPermission: 0'
|
|
||||||
- line: '| CreateWallpaper: 0'
|
|
||||||
- line: '| androidSplitApplicationBinary: 0'
|
|
||||||
- line: '| keepLoadedShadersAlive: 0'
|
|
||||||
- line: '| StripUnusedMeshComponents: 0'
|
|
||||||
- line: '| strictShaderVariantMatching: 0'
|
|
||||||
- line: '| VertexChannelCompressionMask: 4054'
|
|
||||||
- line: '| iPhoneSdkVersion: 988'
|
|
||||||
- line: '| iOSSimulatorArchitecture: 0'
|
|
||||||
- line: '| iOSTargetOSVersionString: 13.0'
|
|
||||||
- line: '| tvOSSdkVersion: 0'
|
|
||||||
- line: '| tvOSSimulatorArchitecture: 0'
|
|
||||||
- line: '| tvOSRequireExtendedGameController: 0'
|
|
||||||
- line: '| tvOSTargetOSVersionString: 13.0'
|
|
||||||
- line: '| VisionOSSdkVersion: 0'
|
|
||||||
- line: '| VisionOSTargetOSVersionString: 1.0'
|
|
||||||
- line: '| uIPrerenderedIcon: 0'
|
|
||||||
- line: '| uIRequiresPersistentWiFi: 0'
|
|
||||||
- line: '| uIRequiresFullScreen: 1'
|
|
||||||
- line: '| uIStatusBarHidden: 1'
|
|
||||||
- line: '| uIExitOnSuspend: 0'
|
|
||||||
- line: '| uIStatusBarStyle: 0'
|
|
||||||
- line: '| appleTVSplashScreen: {instanceID: 0}'
|
|
||||||
- line: '| appleTVSplashScreen2x: {instanceID: 0}'
|
|
||||||
- line: '| tvOSSmallIconLayers: []'
|
|
||||||
- line: '| tvOSSmallIconLayers2x: []'
|
|
||||||
- line: '| tvOSLargeIconLayers: []'
|
|
||||||
- line: '| tvOSLargeIconLayers2x: []'
|
|
||||||
- line: '| tvOSTopShelfImageLayers: []'
|
|
||||||
- line: '| tvOSTopShelfImageLayers2x: []'
|
|
||||||
- line: '| tvOSTopShelfImageWideLayers: []'
|
|
||||||
- line: '| tvOSTopShelfImageWideLayers2x: []'
|
|
||||||
- line: '| iOSLaunchScreenType: 0'
|
|
||||||
- line: '| iOSLaunchScreenPortrait: {instanceID: 0}'
|
|
||||||
- line: '| iOSLaunchScreenLandscape: {instanceID: 0}'
|
|
||||||
- line: '| iOSLaunchScreenBackgroundColor:'
|
|
||||||
- line: '| serializedVersion: 2'
|
|
||||||
- line: '| rgba: 0'
|
|
||||||
- line: '| iOSLaunchScreenFillPct: 100'
|
|
||||||
- line: '| iOSLaunchScreenSize: 100'
|
|
||||||
- line: '| iOSLaunchScreeniPadType: 0'
|
|
||||||
- line: '| iOSLaunchScreeniPadImage: {instanceID: 0}'
|
|
||||||
- line: '| iOSLaunchScreeniPadBackgroundColor:'
|
|
||||||
- line: '| serializedVersion: 2'
|
|
||||||
- line: '| rgba: 0'
|
|
||||||
- line: '| iOSLaunchScreeniPadFillPct: 100'
|
|
||||||
- line: '| iOSLaunchScreeniPadSize: 100'
|
|
||||||
- line: '| iOSLaunchScreenCustomStoryboardPath: '
|
|
||||||
- line: '| iOSLaunchScreeniPadCustomStoryboardPath: '
|
|
||||||
- line: '| iOSDeviceRequirements: []'
|
|
||||||
- line: '| iOSURLSchemes: []'
|
|
||||||
- line: '| macOSURLSchemes: []'
|
|
||||||
- line: '| iOSBackgroundModes: 0'
|
|
||||||
- line: '| iOSMetalForceHardShadows: 0'
|
|
||||||
- line: '| metalEditorSupport: 1'
|
|
||||||
- line: '| metalAPIValidation: 1'
|
|
||||||
- line: '| metalCompileShaderBinary: 0'
|
|
||||||
- line: '| iOSRenderExtraFrameOnPause: 0'
|
|
||||||
- line: '| iosCopyPluginsCodeInsteadOfSymlink: 0'
|
|
||||||
- line: '| appleDeveloperTeamID: '
|
|
||||||
- line: '| iOSManualSigningProvisioningProfileID: '
|
|
||||||
- line: '| tvOSManualSigningProvisioningProfileID: '
|
|
||||||
- line: '| VisionOSManualSigningProvisioningProfileID: '
|
|
||||||
- line: '| iOSManualSigningProvisioningProfileType: 0'
|
|
||||||
- line: '| tvOSManualSigningProvisioningProfileType: 0'
|
|
||||||
- line: '| VisionOSManualSigningProvisioningProfileType: 0'
|
|
||||||
- line: '| appleEnableAutomaticSigning: 0'
|
|
||||||
- line: '| iOSRequireARKit: 0'
|
|
||||||
- line: '| iOSAutomaticallyDetectAndAddCapabilities: 1'
|
|
||||||
- line: '| appleEnableProMotion: 0'
|
|
||||||
- line: '| shaderPrecisionModel: 0'
|
|
||||||
- line: '| clonedFromGUID: c19f32bac17ee4170b3bf8a6a0333fb9'
|
|
||||||
- line: '| templatePackageId: com.unity.template.universal-2d@5.1.0'
|
|
||||||
- line: '| templateDefaultScene: Assets/Scenes/SampleScene.unity'
|
|
||||||
- line: '| useCustomMainManifest: 0'
|
|
||||||
- line: '| useCustomLauncherManifest: 0'
|
|
||||||
- line: '| useCustomMainGradleTemplate: 0'
|
|
||||||
- line: '| useCustomLauncherGradleManifest: 0'
|
|
||||||
- line: '| useCustomBaseGradleTemplate: 0'
|
|
||||||
- line: '| useCustomGradlePropertiesTemplate: 0'
|
|
||||||
- line: '| useCustomGradleSettingsTemplate: 0'
|
|
||||||
- line: '| useCustomProguardFile: 0'
|
|
||||||
- line: '| AndroidTargetArchitectures: 2'
|
|
||||||
- line: '| AndroidSplashScreenScale: 0'
|
|
||||||
- line: '| androidSplashScreen: {instanceID: 0}'
|
|
||||||
- line: '| AndroidKeystoreName: '
|
|
||||||
- line: '| AndroidKeyaliasName: '
|
|
||||||
- line: '| AndroidEnableArmv9SecurityFeatures: 0'
|
|
||||||
- line: '| AndroidEnableArm64MTE: 0'
|
|
||||||
- line: '| AndroidBuildApkPerCpuArchitecture: 0'
|
|
||||||
- line: '| AndroidTVCompatibility: 0'
|
|
||||||
- line: '| AndroidIsGame: 1'
|
|
||||||
- line: '| androidAppCategory: 3'
|
|
||||||
- line: '| useAndroidAppCategory: 1'
|
|
||||||
- line: '| androidAppCategoryOther: '
|
|
||||||
- line: '| AndroidEnableTango: 0'
|
|
||||||
- line: '| androidEnableBanner: 1'
|
|
||||||
- line: '| androidUseLowAccuracyLocation: 0'
|
|
||||||
- line: '| androidUseCustomKeystore: 0'
|
|
||||||
- line: '| m_AndroidBanners:'
|
|
||||||
- line: '| - width: 320'
|
|
||||||
- line: '| height: 180'
|
|
||||||
- line: '| banner: {instanceID: 0}'
|
|
||||||
- line: '| androidGamepadSupportLevel: 0'
|
|
||||||
- line: '| AndroidMinifyRelease: 0'
|
|
||||||
- line: '| AndroidMinifyDebug: 0'
|
|
||||||
- line: '| AndroidValidateAppBundleSize: 1'
|
|
||||||
- line: '| AndroidAppBundleSizeToValidate: 150'
|
|
||||||
- line: '| AndroidReportGooglePlayAppDependencies: 1'
|
|
||||||
- line: '| androidSymbolsSizeThreshold: 800'
|
|
||||||
- line: '| m_BuildTargetIcons: []'
|
|
||||||
- line: '| m_BuildTargetPlatformIcons:'
|
|
||||||
- line: '| - m_BuildTarget: Android'
|
|
||||||
- line: '| m_Icons:'
|
|
||||||
- line: '| - m_Textures: []'
|
|
||||||
- line: '| m_Width: 432'
|
|
||||||
- line: '| m_Height: 432'
|
|
||||||
- line: '| m_Kind: 2'
|
|
||||||
- line: '| m_SubKind: '
|
|
||||||
- line: '| - m_Textures: []'
|
|
||||||
- line: '| m_Width: 324'
|
|
||||||
- line: '| m_Height: 324'
|
|
||||||
- line: '| m_Kind: 2'
|
|
||||||
- line: '| m_SubKind: '
|
|
||||||
- line: '| - m_Textures: []'
|
|
||||||
- line: '| m_Width: 216'
|
|
||||||
- line: '| m_Height: 216'
|
|
||||||
- line: '| m_Kind: 2'
|
|
||||||
- line: '| m_SubKind: '
|
|
||||||
- line: '| - m_Textures: []'
|
|
||||||
- line: '| m_Width: 162'
|
|
||||||
- line: '| m_Height: 162'
|
|
||||||
- line: '| m_Kind: 2'
|
|
||||||
- line: '| m_SubKind: '
|
|
||||||
- line: '| - m_Textures: []'
|
|
||||||
- line: '| m_Width: 108'
|
|
||||||
- line: '| m_Height: 108'
|
|
||||||
- line: '| m_Kind: 2'
|
|
||||||
- line: '| m_SubKind: '
|
|
||||||
- line: '| - m_Textures: []'
|
|
||||||
- line: '| m_Width: 81'
|
|
||||||
- line: '| m_Height: 81'
|
|
||||||
- line: '| m_Kind: 2'
|
|
||||||
- line: '| m_SubKind: '
|
|
||||||
- line: '| - m_Textures: []'
|
|
||||||
- line: '| m_Width: 192'
|
|
||||||
- line: '| m_Height: 192'
|
|
||||||
- line: '| m_Kind: 1'
|
|
||||||
- line: '| m_SubKind: '
|
|
||||||
- line: '| - m_Textures: []'
|
|
||||||
- line: '| m_Width: 144'
|
|
||||||
- line: '| m_Height: 144'
|
|
||||||
- line: '| m_Kind: 1'
|
|
||||||
- line: '| m_SubKind: '
|
|
||||||
- line: '| - m_Textures: []'
|
|
||||||
- line: '| m_Width: 96'
|
|
||||||
- line: '| m_Height: 96'
|
|
||||||
- line: '| m_Kind: 1'
|
|
||||||
- line: '| m_SubKind: '
|
|
||||||
- line: '| - m_Textures: []'
|
|
||||||
- line: '| m_Width: 72'
|
|
||||||
- line: '| m_Height: 72'
|
|
||||||
- line: '| m_Kind: 1'
|
|
||||||
- line: '| m_SubKind: '
|
|
||||||
- line: '| - m_Textures: []'
|
|
||||||
- line: '| m_Width: 48'
|
|
||||||
- line: '| m_Height: 48'
|
|
||||||
- line: '| m_Kind: 1'
|
|
||||||
- line: '| m_SubKind: '
|
|
||||||
- line: '| - m_Textures: []'
|
|
||||||
- line: '| m_Width: 36'
|
|
||||||
- line: '| m_Height: 36'
|
|
||||||
- line: '| m_Kind: 1'
|
|
||||||
- line: '| m_SubKind: '
|
|
||||||
- line: '| - m_Textures: []'
|
|
||||||
- line: '| m_Width: 192'
|
|
||||||
- line: '| m_Height: 192'
|
|
||||||
- line: '| m_Kind: 0'
|
|
||||||
- line: '| m_SubKind: '
|
|
||||||
- line: '| - m_Textures: []'
|
|
||||||
- line: '| m_Width: 144'
|
|
||||||
- line: '| m_Height: 144'
|
|
||||||
- line: '| m_Kind: 0'
|
|
||||||
- line: '| m_SubKind: '
|
|
||||||
- line: '| - m_Textures: []'
|
|
||||||
- line: '| m_Width: 96'
|
|
||||||
- line: '| m_Height: 96'
|
|
||||||
- line: '| m_Kind: 0'
|
|
||||||
- line: '| m_SubKind: '
|
|
||||||
- line: '| - m_Textures: []'
|
|
||||||
- line: '| m_Width: 72'
|
|
||||||
- line: '| m_Height: 72'
|
|
||||||
- line: '| m_Kind: 0'
|
|
||||||
- line: '| m_SubKind: '
|
|
||||||
- line: '| - m_Textures: []'
|
|
||||||
- line: '| m_Width: 48'
|
|
||||||
- line: '| m_Height: 48'
|
|
||||||
- line: '| m_Kind: 0'
|
|
||||||
- line: '| m_SubKind: '
|
|
||||||
- line: '| - m_Textures: []'
|
|
||||||
- line: '| m_Width: 36'
|
|
||||||
- line: '| m_Height: 36'
|
|
||||||
- line: '| m_Kind: 0'
|
|
||||||
- line: '| m_SubKind: '
|
|
||||||
- line: '| m_BuildTargetBatching: []'
|
|
||||||
- line: '| m_BuildTargetShaderSettings: []'
|
|
||||||
- line: '| m_BuildTargetGraphicsJobs: []'
|
|
||||||
- line: '| m_BuildTargetGraphicsJobMode: []'
|
|
||||||
- line: '| m_BuildTargetGraphicsAPIs: []'
|
|
||||||
- line: '| m_BuildTargetVRSettings: []'
|
|
||||||
- line: '| m_DefaultShaderChunkSizeInMB: 16'
|
|
||||||
- line: '| m_DefaultShaderChunkCount: 0'
|
|
||||||
- line: '| openGLRequireES31: 0'
|
|
||||||
- line: '| openGLRequireES31AEP: 0'
|
|
||||||
- line: '| openGLRequireES32: 0'
|
|
||||||
- line: '| m_TemplateCustomTags: {}'
|
|
||||||
- line: '| mobileMTRendering:'
|
|
||||||
- line: '| Android: 1'
|
|
||||||
- line: '| iPhone: 1'
|
|
||||||
- line: '| tvOS: 1'
|
|
||||||
- line: '| m_BuildTargetGroupLightmapEncodingQuality: []'
|
|
||||||
- line: '| m_BuildTargetGroupHDRCubemapEncodingQuality: []'
|
|
||||||
- line: '| m_BuildTargetGroupLightmapSettings: []'
|
|
||||||
- line: '| m_BuildTargetGroupLoadStoreDebugModeSettings: []'
|
|
||||||
- line: '| m_BuildTargetNormalMapEncoding: []'
|
|
||||||
- line: '| m_BuildTargetDefaultTextureCompressionFormat:'
|
|
||||||
- line: '| - serializedVersion: 3'
|
|
||||||
- line: '| m_BuildTarget: Android'
|
|
||||||
- line: '| m_Formats: 01000000'
|
|
||||||
- line: '| playModeTestRunnerEnabled: 0'
|
|
||||||
- line: '| runPlayModeTestAsEditModeTest: 0'
|
|
||||||
- line: '| actionOnDotNetUnhandledException: 1'
|
|
||||||
- line: '| editorGfxJobOverride: 1'
|
|
||||||
- line: '| enableInternalProfiler: 0'
|
|
||||||
- line: '| logObjCUncaughtExceptions: 1'
|
|
||||||
- line: '| enableCrashReportAPI: 0'
|
|
||||||
- line: '| cameraUsageDescription: '
|
|
||||||
- line: '| locationUsageDescription: '
|
|
||||||
- line: '| microphoneUsageDescription: '
|
|
||||||
- line: '| bluetoothUsageDescription: '
|
|
||||||
- line: '| macOSTargetOSVersion: 11.0'
|
|
||||||
- line: '| switchNMETAOverride: '
|
|
||||||
- line: '| switchNetLibKey: '
|
|
||||||
- line: '| switchSocketMemoryPoolSize: 6144'
|
|
||||||
- line: '| switchSocketAllocatorPoolSize: 128'
|
|
||||||
- line: '| switchSocketConcurrencyLimit: 14'
|
|
||||||
- line: '| switchScreenResolutionBehavior: 2'
|
|
||||||
- line: '| switchUseCPUProfiler: 0'
|
|
||||||
- line: '| switchEnableFileSystemTrace: 0'
|
|
||||||
- line: '| switchLTOSetting: 0'
|
|
||||||
- line: '| switchApplicationID: 0x01004b9000490000'
|
|
||||||
- line: '| switchNSODependencies: '
|
|
||||||
- line: '| switchCompilerFlags: '
|
|
||||||
- line: '| switchTitleNames_0: '
|
|
||||||
- line: '| switchTitleNames_1: '
|
|
||||||
- line: '| switchTitleNames_2: '
|
|
||||||
- line: '| switchTitleNames_3: '
|
|
||||||
- line: '| switchTitleNames_4: '
|
|
||||||
- line: '| switchTitleNames_5: '
|
|
||||||
- line: '| switchTitleNames_6: '
|
|
||||||
- line: '| switchTitleNames_7: '
|
|
||||||
- line: '| switchTitleNames_8: '
|
|
||||||
- line: '| switchTitleNames_9: '
|
|
||||||
- line: '| switchTitleNames_10: '
|
|
||||||
- line: '| switchTitleNames_11: '
|
|
||||||
- line: '| switchTitleNames_12: '
|
|
||||||
- line: '| switchTitleNames_13: '
|
|
||||||
- line: '| switchTitleNames_14: '
|
|
||||||
- line: '| switchTitleNames_15: '
|
|
||||||
- line: '| switchPublisherNames_0: '
|
|
||||||
- line: '| switchPublisherNames_1: '
|
|
||||||
- line: '| switchPublisherNames_2: '
|
|
||||||
- line: '| switchPublisherNames_3: '
|
|
||||||
- line: '| switchPublisherNames_4: '
|
|
||||||
- line: '| switchPublisherNames_5: '
|
|
||||||
- line: '| switchPublisherNames_6: '
|
|
||||||
- line: '| switchPublisherNames_7: '
|
|
||||||
- line: '| switchPublisherNames_8: '
|
|
||||||
- line: '| switchPublisherNames_9: '
|
|
||||||
- line: '| switchPublisherNames_10: '
|
|
||||||
- line: '| switchPublisherNames_11: '
|
|
||||||
- line: '| switchPublisherNames_12: '
|
|
||||||
- line: '| switchPublisherNames_13: '
|
|
||||||
- line: '| switchPublisherNames_14: '
|
|
||||||
- line: '| switchPublisherNames_15: '
|
|
||||||
- line: '| switchIcons_0: {instanceID: 0}'
|
|
||||||
- line: '| switchIcons_1: {instanceID: 0}'
|
|
||||||
- line: '| switchIcons_2: {instanceID: 0}'
|
|
||||||
- line: '| switchIcons_3: {instanceID: 0}'
|
|
||||||
- line: '| switchIcons_4: {instanceID: 0}'
|
|
||||||
- line: '| switchIcons_5: {instanceID: 0}'
|
|
||||||
- line: '| switchIcons_6: {instanceID: 0}'
|
|
||||||
- line: '| switchIcons_7: {instanceID: 0}'
|
|
||||||
- line: '| switchIcons_8: {instanceID: 0}'
|
|
||||||
- line: '| switchIcons_9: {instanceID: 0}'
|
|
||||||
- line: '| switchIcons_10: {instanceID: 0}'
|
|
||||||
- line: '| switchIcons_11: {instanceID: 0}'
|
|
||||||
- line: '| switchIcons_12: {instanceID: 0}'
|
|
||||||
- line: '| switchIcons_13: {instanceID: 0}'
|
|
||||||
- line: '| switchIcons_14: {instanceID: 0}'
|
|
||||||
- line: '| switchIcons_15: {instanceID: 0}'
|
|
||||||
- line: '| switchSmallIcons_0: {instanceID: 0}'
|
|
||||||
- line: '| switchSmallIcons_1: {instanceID: 0}'
|
|
||||||
- line: '| switchSmallIcons_2: {instanceID: 0}'
|
|
||||||
- line: '| switchSmallIcons_3: {instanceID: 0}'
|
|
||||||
- line: '| switchSmallIcons_4: {instanceID: 0}'
|
|
||||||
- line: '| switchSmallIcons_5: {instanceID: 0}'
|
|
||||||
- line: '| switchSmallIcons_6: {instanceID: 0}'
|
|
||||||
- line: '| switchSmallIcons_7: {instanceID: 0}'
|
|
||||||
- line: '| switchSmallIcons_8: {instanceID: 0}'
|
|
||||||
- line: '| switchSmallIcons_9: {instanceID: 0}'
|
|
||||||
- line: '| switchSmallIcons_10: {instanceID: 0}'
|
|
||||||
- line: '| switchSmallIcons_11: {instanceID: 0}'
|
|
||||||
- line: '| switchSmallIcons_12: {instanceID: 0}'
|
|
||||||
- line: '| switchSmallIcons_13: {instanceID: 0}'
|
|
||||||
- line: '| switchSmallIcons_14: {instanceID: 0}'
|
|
||||||
- line: '| switchSmallIcons_15: {instanceID: 0}'
|
|
||||||
- line: '| switchManualHTML: '
|
|
||||||
- line: '| switchAccessibleURLs: '
|
|
||||||
- line: '| switchLegalInformation: '
|
|
||||||
- line: '| switchMainThreadStackSize: 1048576'
|
|
||||||
- line: '| switchPresenceGroupId: '
|
|
||||||
- line: '| switchLogoHandling: 0'
|
|
||||||
- line: '| switchReleaseVersion: 0'
|
|
||||||
- line: '| switchDisplayVersion: 1.0.0'
|
|
||||||
- line: '| switchStartupUserAccount: 0'
|
|
||||||
- line: '| switchSupportedLanguagesMask: 0'
|
|
||||||
- line: '| switchLogoType: 0'
|
|
||||||
- line: '| switchApplicationErrorCodeCategory: '
|
|
||||||
- line: '| switchUserAccountSaveDataSize: 0'
|
|
||||||
- line: '| switchUserAccountSaveDataJournalSize: 0'
|
|
||||||
- line: '| switchApplicationAttribute: 0'
|
|
||||||
- line: '| switchCardSpecSize: -1'
|
|
||||||
- line: '| switchCardSpecClock: -1'
|
|
||||||
- line: '| switchRatingsMask: 0'
|
|
||||||
- line: '| switchRatingsInt_0: 0'
|
|
||||||
- line: '| switchRatingsInt_1: 0'
|
|
||||||
- line: '| switchRatingsInt_2: 0'
|
|
||||||
- line: '| switchRatingsInt_3: 0'
|
|
||||||
- line: '| switchRatingsInt_4: 0'
|
|
||||||
- line: '| switchRatingsInt_5: 0'
|
|
||||||
- line: '| switchRatingsInt_6: 0'
|
|
||||||
- line: '| switchRatingsInt_7: 0'
|
|
||||||
- line: '| switchRatingsInt_8: 0'
|
|
||||||
- line: '| switchRatingsInt_9: 0'
|
|
||||||
- line: '| switchRatingsInt_10: 0'
|
|
||||||
- line: '| switchRatingsInt_11: 0'
|
|
||||||
- line: '| switchRatingsInt_12: 0'
|
|
||||||
- line: '| switchLocalCommunicationIds_0: '
|
|
||||||
- line: '| switchLocalCommunicationIds_1: '
|
|
||||||
- line: '| switchLocalCommunicationIds_2: '
|
|
||||||
- line: '| switchLocalCommunicationIds_3: '
|
|
||||||
- line: '| switchLocalCommunicationIds_4: '
|
|
||||||
- line: '| switchLocalCommunicationIds_5: '
|
|
||||||
- line: '| switchLocalCommunicationIds_6: '
|
|
||||||
- line: '| switchLocalCommunicationIds_7: '
|
|
||||||
- line: '| switchParentalControl: 0'
|
|
||||||
- line: '| switchAllowsScreenshot: 1'
|
|
||||||
- line: '| switchAllowsVideoCapturing: 1'
|
|
||||||
- line: '| switchAllowsRuntimeAddOnContentInstall: 0'
|
|
||||||
- line: '| switchDataLossConfirmation: 0'
|
|
||||||
- line: '| switchUserAccountLockEnabled: 0'
|
|
||||||
- line: '| switchSystemResourceMemory: 16777216'
|
|
||||||
- line: '| switchSupportedNpadStyles: 22'
|
|
||||||
- line: '| switchNativeFsCacheSize: 32'
|
|
||||||
- line: '| switchIsHoldTypeHorizontal: 0'
|
|
||||||
- line: '| switchSupportedNpadCount: 8'
|
|
||||||
- line: '| switchEnableTouchScreen: 1'
|
|
||||||
- line: '| switchSocketConfigEnabled: 0'
|
|
||||||
- line: '| switchTcpInitialSendBufferSize: 32'
|
|
||||||
- line: '| switchTcpInitialReceiveBufferSize: 64'
|
|
||||||
- line: '| switchTcpAutoSendBufferSizeMax: 256'
|
|
||||||
- line: '| switchTcpAutoReceiveBufferSizeMax: 256'
|
|
||||||
- line: '| switchUdpSendBufferSize: 9'
|
|
||||||
- line: '| switchUdpReceiveBufferSize: 42'
|
|
||||||
- line: '| switchSocketBufferEfficiency: 4'
|
|
||||||
- line: '| switchSocketInitializeEnabled: 1'
|
|
||||||
- line: '| switchNetworkInterfaceManagerInitializeEnabled: 1'
|
|
||||||
- line: '| switchDisableHTCSPlayerConnection: 0'
|
|
||||||
- line: '| switchUseNewStyleFilepaths: 0'
|
|
||||||
- line: '| switchUseLegacyFmodPriorities: 0'
|
|
||||||
- line: '| switchUseMicroSleepForYield: 1'
|
|
||||||
- line: '| switchEnableRamDiskSupport: 0'
|
|
||||||
- line: '| switchMicroSleepForYieldTime: 25'
|
|
||||||
- line: '| switchRamDiskSpaceSize: 12'
|
|
||||||
- line: '| switchUpgradedPlayerSettingsToNMETA: 0'
|
|
||||||
- line: '| ps4NPAgeRating: 12'
|
|
||||||
- line: '| ps4NPTitleSecret: '
|
|
||||||
- line: '| ps4NPTrophyPackPath: '
|
|
||||||
- line: '| ps4ParentalLevel: 11'
|
|
||||||
- line: '| ps4ContentID: ED1633-NPXX51362_00-0000000000000000'
|
|
||||||
- line: '| ps4Category: 0'
|
|
||||||
- line: '| ps4MasterVersion: 01.00'
|
|
||||||
- line: '| ps4AppVersion: 01.00'
|
|
||||||
- line: '| ps4AppType: 0'
|
|
||||||
- line: '| ps4ParamSfxPath: '
|
|
||||||
- line: '| ps4VideoOutPixelFormat: 0'
|
|
||||||
- line: '| ps4VideoOutInitialWidth: 1920'
|
|
||||||
- line: '| ps4VideoOutBaseModeInitialWidth: 1920'
|
|
||||||
- line: '| ps4VideoOutReprojectionRate: 60'
|
|
||||||
- line: '| ps4PronunciationXMLPath: '
|
|
||||||
- line: '| ps4PronunciationSIGPath: '
|
|
||||||
- line: '| ps4BackgroundImagePath: '
|
|
||||||
- line: '| ps4StartupImagePath: '
|
|
||||||
- line: '| ps4StartupImagesFolder: '
|
|
||||||
- line: '| ps4IconImagesFolder: '
|
|
||||||
- line: '| ps4SaveDataImagePath: '
|
|
||||||
- line: '| ps4SdkOverride: '
|
|
||||||
- line: '| ps4BGMPath: '
|
|
||||||
- line: '| ps4ShareFilePath: '
|
|
||||||
- line: '| ps4ShareOverlayImagePath: '
|
|
||||||
- line: '| ps4PrivacyGuardImagePath: '
|
|
||||||
- line: '| ps4ExtraSceSysFile: '
|
|
||||||
- line: '| ps4NPtitleDatPath: '
|
|
||||||
- line: '| ps4RemotePlayKeyAssignment: -1'
|
|
||||||
- line: '| ps4RemotePlayKeyMappingDir: '
|
|
||||||
- line: '| ps4PlayTogetherPlayerCount: 0'
|
|
||||||
- line: '| ps4EnterButtonAssignment: 2'
|
|
||||||
- line: '| ps4ApplicationParam1: 0'
|
|
||||||
- line: '| ps4ApplicationParam2: 0'
|
|
||||||
- line: '| ps4ApplicationParam3: 0'
|
|
||||||
- line: '| ps4ApplicationParam4: 0'
|
|
||||||
- line: '| ps4DownloadDataSize: 0'
|
|
||||||
- line: '| ps4GarlicHeapSize: 2048'
|
|
||||||
- line: '| ps4ProGarlicHeapSize: 2560'
|
|
||||||
- line: '| playerPrefsMaxSize: 32768'
|
|
||||||
- line: '| ps4Passcode: frAQBc8Wsa1xVPfvJcrgRYwTiizs2trQ'
|
|
||||||
- line: '| ps4pnSessions: 1'
|
|
||||||
- line: '| ps4pnPresence: 1'
|
|
||||||
- line: '| ps4pnFriends: 1'
|
|
||||||
- line: '| ps4pnGameCustomData: 1'
|
|
||||||
- line: '| playerPrefsSupport: 0'
|
|
||||||
- line: '| enableApplicationExit: 0'
|
|
||||||
- line: '| resetTempFolder: 1'
|
|
||||||
- line: '| restrictedAudioUsageRights: 0'
|
|
||||||
- line: '| ps4UseResolutionFallback: 0'
|
|
||||||
- line: '| ps4ReprojectionSupport: 0'
|
|
||||||
- line: '| ps4UseAudio3dBackend: 0'
|
|
||||||
- line: '| ps4UseLowGarlicFragmentationMode: 1'
|
|
||||||
- line: '| ps4SocialScreenEnabled: 0'
|
|
||||||
- line: '| ps4ScriptOptimizationLevel: 2'
|
|
||||||
- line: '| ps4Audio3dVirtualSpeakerCount: 14'
|
|
||||||
- line: '| ps4attribCpuUsage: 0'
|
|
||||||
- line: '| ps4PatchPkgPath: '
|
|
||||||
- line: '| ps4PatchLatestPkgPath: '
|
|
||||||
- line: '| ps4PatchChangeinfoPath: '
|
|
||||||
- line: '| ps4PatchDayOne: 0'
|
|
||||||
- line: '| ps4attribUserManagement: 0'
|
|
||||||
- line: '| ps4attribMoveSupport: 0'
|
|
||||||
- line: '| ps4attrib3DSupport: 0'
|
|
||||||
- line: '| ps4attribShareSupport: 0'
|
|
||||||
- line: '| ps4attribExclusiveVR: 0'
|
|
||||||
- line: '| ps4disableAutoHideSplash: 0'
|
|
||||||
- line: '| ps4videoRecordingFeaturesUsed: 0'
|
|
||||||
- line: '| ps4contentSearchFeaturesUsed: 0'
|
|
||||||
- line: '| ps4CompatibilityPS5: 0'
|
|
||||||
- line: '| ps4AllowPS5Detection: 0'
|
|
||||||
- line: '| ps4GPU800MHz: 1'
|
|
||||||
- line: '| ps4attribEyeToEyeDistanceSettingVR: 0'
|
|
||||||
- line: '| ps4IncludedModules: []'
|
|
||||||
- line: '| ps4attribVROutputEnabled: 0'
|
|
||||||
- line: '| monoEnv: '
|
|
||||||
- line: '| splashScreenBackgroundSourceLandscape: {instanceID: 0}'
|
|
||||||
- line: '| splashScreenBackgroundSourcePortrait: {instanceID: 0}'
|
|
||||||
- line: '| blurSplashScreenBackground: 1'
|
|
||||||
- line: '| spritePackerPolicy: '
|
|
||||||
- line: '| webGLMemorySize: 32'
|
|
||||||
- line: '| webGLExceptionSupport: 1'
|
|
||||||
- line: '| webGLNameFilesAsHashes: 0'
|
|
||||||
- line: '| webGLShowDiagnostics: 0'
|
|
||||||
- line: '| webGLDataCaching: 1'
|
|
||||||
- line: '| webGLDebugSymbols: 0'
|
|
||||||
- line: '| webGLEmscriptenArgs: '
|
|
||||||
- line: '| webGLModulesDirectory: '
|
|
||||||
- line: '| webGLTemplate: APPLICATION:Default'
|
|
||||||
- line: '| webGLAnalyzeBuildSize: 0'
|
|
||||||
- line: '| webGLUseEmbeddedResources: 0'
|
|
||||||
- line: '| webGLCompressionFormat: 0'
|
|
||||||
- line: '| webGLWasmArithmeticExceptions: 0'
|
|
||||||
- line: '| webGLLinkerTarget: 1'
|
|
||||||
- line: '| webGLThreadsSupport: 0'
|
|
||||||
- line: '| webGLDecompressionFallback: 0'
|
|
||||||
- line: '| webGLInitialMemorySize: 32'
|
|
||||||
- line: '| webGLMaximumMemorySize: 2048'
|
|
||||||
- line: '| webGLMemoryGrowthMode: 2'
|
|
||||||
- line: '| webGLMemoryLinearGrowthStep: 16'
|
|
||||||
- line: '| webGLMemoryGeometricGrowthStep: 0.2'
|
|
||||||
- line: '| webGLMemoryGeometricGrowthCap: 96'
|
|
||||||
- line: '| webGLEnableWebGPU: 0'
|
|
||||||
- line: '| webGLPowerPreference: 2'
|
|
||||||
- line: '| webGLWebAssemblyTable: 0'
|
|
||||||
- line: '| webGLWebAssemblyBigInt: 0'
|
|
||||||
- line: '| webGLCloseOnQuit: 0'
|
|
||||||
- line: '| webWasm2023: 0'
|
|
||||||
- line: '| scriptingDefineSymbols:'
|
|
||||||
- line: '| Android: MIRROR;MIRROR_89_OR_NEWER;MIRROR_90_OR_NEWER;MIRROR_93_OR_NEWER;MIRROR_96_OR_NEWER;EDGEGAP_PLUGIN_SERVERS;DOTWEEN'
|
|
||||||
- line: '| EmbeddedLinux: DOTWEEN'
|
|
||||||
- line: '| GameCoreScarlett: DOTWEEN'
|
|
||||||
- line: '| GameCoreXboxOne: DOTWEEN'
|
|
||||||
- line: '| Kepler: DOTWEEN'
|
|
||||||
- line: '| LinuxHeadlessSimulation: DOTWEEN'
|
|
||||||
- line: '| Nintendo Switch: DOTWEEN'
|
|
||||||
- line: '| Nintendo Switch 2: DOTWEEN'
|
|
||||||
- line: '| PS4: DOTWEEN'
|
|
||||||
- line: '| PS5: DOTWEEN'
|
|
||||||
- line: '| QNX: DOTWEEN'
|
|
||||||
- line: '| Standalone: DOTWEEN'
|
|
||||||
- line: '| VisionOS: DOTWEEN'
|
|
||||||
- line: '| WebGL: DOTWEEN'
|
|
||||||
- line: '| Windows Store Apps: DOTWEEN'
|
|
||||||
- line: '| XboxOne: DOTWEEN'
|
|
||||||
- line: '| iPhone: DOTWEEN'
|
|
||||||
- line: '| tvOS: DOTWEEN'
|
|
||||||
- line: '| additionalCompilerArguments: {}'
|
|
||||||
- line: '| platformArchitecture: {}'
|
|
||||||
- line: '| scriptingBackend:'
|
|
||||||
- line: '| Android: 1'
|
|
||||||
- line: '| il2cppCompilerConfiguration: {}'
|
|
||||||
- line: '| il2cppCodeGeneration: {}'
|
|
||||||
- line: '| il2cppStacktraceInformation: {}'
|
|
||||||
- line: '| managedStrippingLevel: {}'
|
|
||||||
- line: '| incrementalIl2cppBuild: {}'
|
|
||||||
- line: '| suppressCommonWarnings: 1'
|
|
||||||
- line: '| allowUnsafeCode: 0'
|
|
||||||
- line: '| useDeterministicCompilation: 1'
|
|
||||||
- line: '| additionalIl2CppArgs: '
|
|
||||||
- line: '| scriptingRuntimeVersion: 1'
|
|
||||||
- line: '| gcIncremental: 1'
|
|
||||||
- line: '| gcWBarrierValidation: 0'
|
|
||||||
- line: '| apiCompatibilityLevelPerPlatform: {}'
|
|
||||||
- line: '| editorAssembliesCompatibilityLevel: 1'
|
|
||||||
- line: '| m_RenderingPath: 1'
|
|
||||||
- line: '| m_MobileRenderingPath: 1'
|
|
||||||
- line: '| metroPackageName: WalkInvest_Soccer'
|
|
||||||
- line: '| metroPackageVersion: '
|
|
||||||
- line: '| metroCertificatePath: '
|
|
||||||
- line: '| metroCertificatePassword: '
|
|
||||||
- line: '| metroCertificateSubject: '
|
|
||||||
- line: '| metroCertificateIssuer: '
|
|
||||||
- line: '| metroCertificateNotAfter: 0000000000000000'
|
|
||||||
- line: '| metroApplicationDescription: WalkInvest_Soccer'
|
|
||||||
- line: '| wsaImages: {}'
|
|
||||||
- line: '| metroTileShortName: '
|
|
||||||
- line: '| metroTileShowName: 0'
|
|
||||||
- line: '| metroMediumTileShowName: 0'
|
|
||||||
- line: '| metroLargeTileShowName: 0'
|
|
||||||
- line: '| metroWideTileShowName: 0'
|
|
||||||
- line: '| metroSupportStreamingInstall: 0'
|
|
||||||
- line: '| metroLastRequiredScene: 0'
|
|
||||||
- line: '| metroDefaultTileSize: 1'
|
|
||||||
- line: '| metroTileForegroundText: 2'
|
|
||||||
- line: '| metroTileBackgroundColor: {r: 0.13333334, g: 0.17254902, b: 0.21568628,
|
|
||||||
a: 0}'
|
|
||||||
- line: '| metroSplashScreenBackgroundColor: {r: 0.12941177, g: 0.17254902,
|
|
||||||
b: 0.21568628, a: 1}'
|
|
||||||
- line: '| metroSplashScreenUseBackgroundColor: 0'
|
|
||||||
- line: '| syncCapabilities: 0'
|
|
||||||
- line: '| platformCapabilities: {}'
|
|
||||||
- line: '| metroTargetDeviceFamilies: {}'
|
|
||||||
- line: '| metroFTAName: '
|
|
||||||
- line: '| metroFTAFileTypes: []'
|
|
||||||
- line: '| metroProtocolName: '
|
|
||||||
- line: '| vcxProjDefaultLanguage: '
|
|
||||||
- line: '| XboxOneProductId: '
|
|
||||||
- line: '| XboxOneUpdateKey: '
|
|
||||||
- line: '| XboxOneSandboxId: '
|
|
||||||
- line: '| XboxOneContentId: '
|
|
||||||
- line: '| XboxOneTitleId: '
|
|
||||||
- line: '| XboxOneSCId: '
|
|
||||||
- line: '| XboxOneGameOsOverridePath: '
|
|
||||||
- line: '| XboxOnePackagingOverridePath: '
|
|
||||||
- line: '| XboxOneAppManifestOverridePath: '
|
|
||||||
- line: '| XboxOneVersion: 1.0.0.0'
|
|
||||||
- line: '| XboxOnePackageEncryption: 0'
|
|
||||||
- line: '| XboxOnePackageUpdateGranularity: 2'
|
|
||||||
- line: '| XboxOneDescription: '
|
|
||||||
- line: '| XboxOneLanguage:'
|
|
||||||
- line: '| - enus'
|
|
||||||
- line: '| XboxOneCapability: []'
|
|
||||||
- line: '| XboxOneGameRating: {}'
|
|
||||||
- line: '| XboxOneIsContentPackage: 0'
|
|
||||||
- line: '| XboxOneEnhancedXboxCompatibilityMode: 0'
|
|
||||||
- line: '| XboxOneEnableGPUVariability: 1'
|
|
||||||
- line: '| XboxOneSockets: {}'
|
|
||||||
- line: '| XboxOneSplashScreen: {instanceID: 0}'
|
|
||||||
- line: '| XboxOneAllowedProductIds: []'
|
|
||||||
- line: '| XboxOnePersistentLocalStorageSize: 0'
|
|
||||||
- line: '| XboxOneXTitleMemory: 8'
|
|
||||||
- line: '| XboxOneOverrideIdentityName: '
|
|
||||||
- line: '| XboxOneOverrideIdentityPublisher: '
|
|
||||||
- line: '| vrEditorSettings: {}'
|
|
||||||
- line: '| cloudServicesEnabled: {}'
|
|
||||||
- line: '| luminIcon:'
|
|
||||||
- line: '| m_Name: '
|
|
||||||
- line: '| m_ModelFolderPath: '
|
|
||||||
- line: '| m_PortalFolderPath: '
|
|
||||||
- line: '| luminCert:'
|
|
||||||
- line: '| m_CertPath: '
|
|
||||||
- line: '| m_SignPackage: 1'
|
|
||||||
- line: '| luminIsChannelApp: 0'
|
|
||||||
- line: '| luminVersion:'
|
|
||||||
- line: '| m_VersionCode: 1'
|
|
||||||
- line: '| m_VersionName: '
|
|
||||||
- line: '| hmiPlayerDataPath: '
|
|
||||||
- line: '| hmiForceSRGBBlit: 1'
|
|
||||||
- line: '| embeddedLinuxEnableGamepadInput: 0'
|
|
||||||
- line: '| hmiCpuConfiguration: '
|
|
||||||
- line: '| hmiLogStartupTiming: 0'
|
|
||||||
- line: '| qnxGraphicConfPath: '
|
|
||||||
- line: '| apiCompatibilityLevel: 6'
|
|
||||||
- line: '| captureStartupLogs: {}'
|
|
||||||
- line: '| activeInputHandler: 2'
|
|
||||||
- line: '| windowsGamepadBackendHint: 0'
|
|
||||||
- line: '| cloudProjectId: 267a39bf-cb72-4f17-bb8e-775bffe1a6a1'
|
|
||||||
- line: '| framebufferDepthMemorylessMode: 0'
|
|
||||||
- line: '| qualitySettingsNames: []'
|
|
||||||
- line: '| projectName: WalkInvest_Soccer'
|
|
||||||
- line: '| organizationId: sewmina7'
|
|
||||||
- line: '| cloudEnabled: 0'
|
|
||||||
- line: '| legacyClampBlendShapeWeights: 0'
|
|
||||||
- line: '| hmiLoadingImage: {instanceID: 0}'
|
|
||||||
- line: '| platformRequiresReadableAssets: 0'
|
|
||||||
- line: '| virtualTexturingSupportEnabled: 0'
|
|
||||||
- line: '| insecureHttpOption: 2'
|
|
||||||
- line: '| androidVulkanDenyFilterList: []'
|
|
||||||
- line: '| androidVulkanAllowFilterList: []'
|
|
||||||
- line: '| '
|
|
||||||
references:
|
references:
|
||||||
version: 2
|
version: 2
|
||||||
RefIds:
|
RefIds:
|
||||||
|
|||||||
@@ -717,6 +717,186 @@ MonoBehaviour:
|
|||||||
m_XAdvance: 0
|
m_XAdvance: 0
|
||||||
m_YAdvance: 0
|
m_YAdvance: 0
|
||||||
m_FeatureLookupFlags: 0
|
m_FeatureLookupFlags: 0
|
||||||
|
- m_FirstAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 58
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: -4.745117
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_SecondAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 15
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_FeatureLookupFlags: 0
|
||||||
|
- m_FirstAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 58
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: -1.5537109
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_SecondAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 16
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_FeatureLookupFlags: 0
|
||||||
|
- m_FirstAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 58
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: -4.745117
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_SecondAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 17
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_FeatureLookupFlags: 0
|
||||||
|
- m_FirstAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 58
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: -1.5537109
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_SecondAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 29
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_FeatureLookupFlags: 0
|
||||||
|
- m_FirstAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 58
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: -1.5537109
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_SecondAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 30
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_FeatureLookupFlags: 0
|
||||||
|
- m_FirstAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 58
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: -3.1914062
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_SecondAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 36
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_FeatureLookupFlags: 0
|
||||||
|
- m_FirstAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 58
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: -3.1914062
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_SecondAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 68
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_FeatureLookupFlags: 0
|
||||||
|
- m_FirstAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 58
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: -1.5537109
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_SecondAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 72
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_FeatureLookupFlags: 0
|
||||||
|
- m_FirstAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 58
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: -1.5537109
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_SecondAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 82
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_FeatureLookupFlags: 0
|
||||||
|
- m_FirstAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 58
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: -1.5537109
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_SecondAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 85
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_FeatureLookupFlags: 0
|
||||||
|
- m_FirstAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 58
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: -1.5537109
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_SecondAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 88
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_FeatureLookupFlags: 0
|
||||||
|
- m_FirstAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 58
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: -0.7558594
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_SecondAdjustmentRecord:
|
||||||
|
m_GlyphIndex: 92
|
||||||
|
m_GlyphValueRecord:
|
||||||
|
m_XPlacement: 0
|
||||||
|
m_YPlacement: 0
|
||||||
|
m_XAdvance: 0
|
||||||
|
m_YAdvance: 0
|
||||||
|
m_FeatureLookupFlags: 0
|
||||||
- m_FirstAdjustmentRecord:
|
- m_FirstAdjustmentRecord:
|
||||||
m_GlyphIndex: 85
|
m_GlyphIndex: 85
|
||||||
m_GlyphValueRecord:
|
m_GlyphValueRecord:
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: edcd5ed551868bc4084a6b802acfffef
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ae3b0b531f3b3b14eaa1cd3d02b15756
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 17 KiB |
@@ -0,0 +1,156 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 532bcbd7fabd63844ac75765ae25dcb9
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable:
|
||||||
|
- first:
|
||||||
|
213: 7609527126711406816
|
||||||
|
second: player 2_icon_0
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 13
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
flipGreenChannel: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMipmapLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: 1
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 2
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites:
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: player 2_icon_0
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 0
|
||||||
|
y: 0
|
||||||
|
width: 87
|
||||||
|
height: 88
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
customData:
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: -1
|
||||||
|
bones: []
|
||||||
|
spriteID: 0e01550da987a9960800000000000000
|
||||||
|
internalID: 7609527126711406816
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
outline: []
|
||||||
|
customData:
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID:
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spriteCustomMetadata:
|
||||||
|
entries: []
|
||||||
|
nameFileIdTable:
|
||||||
|
player 2_icon_0: 7609527126711406816
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 14 KiB |
@@ -0,0 +1,156 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 5b969ed0d82676d4890df6c74fd6f3c4
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable:
|
||||||
|
- first:
|
||||||
|
213: 8390053243822926539
|
||||||
|
second: player1 team name_frame_0
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 13
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
flipGreenChannel: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMipmapLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: 1
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 2
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites:
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: player1 team name_frame_0
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 0
|
||||||
|
y: 0
|
||||||
|
width: 295
|
||||||
|
height: 65
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
customData:
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: -1
|
||||||
|
bones: []
|
||||||
|
spriteID: bcaedac09f47f6470800000000000000
|
||||||
|
internalID: 8390053243822926539
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
outline: []
|
||||||
|
customData:
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID:
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spriteCustomMetadata:
|
||||||
|
entries: []
|
||||||
|
nameFileIdTable:
|
||||||
|
player1 team name_frame_0: 8390053243822926539
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 14 KiB |
@@ -0,0 +1,156 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: f3154365711ce2e488d005de85abbe10
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable:
|
||||||
|
- first:
|
||||||
|
213: 8307197410019240183
|
||||||
|
second: player2 team name_frame_0
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 13
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
flipGreenChannel: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMipmapLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: 1
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 2
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites:
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: player2 team name_frame_0
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 0
|
||||||
|
y: 0
|
||||||
|
width: 295
|
||||||
|
height: 65
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
customData:
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: -1
|
||||||
|
bones: []
|
||||||
|
spriteID: 7f8ed3fe708194370800000000000000
|
||||||
|
internalID: 8307197410019240183
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
outline: []
|
||||||
|
customData:
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID:
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spriteCustomMetadata:
|
||||||
|
entries: []
|
||||||
|
nameFileIdTable:
|
||||||
|
player2 team name_frame_0: 8307197410019240183
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 15 KiB |
@@ -0,0 +1,156 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 6d456d40d9924194c9553d5e160fc351
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable:
|
||||||
|
- first:
|
||||||
|
213: -3258964617450948449
|
||||||
|
second: stadium name_frame_0
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 13
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
flipGreenChannel: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMipmapLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: 1
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 2
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites:
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: stadium name_frame_0
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 0
|
||||||
|
y: 0
|
||||||
|
width: 290
|
||||||
|
height: 69
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
customData:
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: -1
|
||||||
|
bones: []
|
||||||
|
spriteID: f98f44972f4d5c2d0800000000000000
|
||||||
|
internalID: -3258964617450948449
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
outline: []
|
||||||
|
customData:
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID:
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spriteCustomMetadata:
|
||||||
|
entries: []
|
||||||
|
nameFileIdTable:
|
||||||
|
stadium name_frame_0: -3258964617450948449
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
Binary file not shown.
|
After Width: | Height: | Size: 15 KiB |
@@ -0,0 +1,156 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: ea85a3a401874a748b53d362fcdc6f60
|
||||||
|
TextureImporter:
|
||||||
|
internalIDToNameTable:
|
||||||
|
- first:
|
||||||
|
213: 4568715786991894220
|
||||||
|
second: v.s_frame_0
|
||||||
|
externalObjects: {}
|
||||||
|
serializedVersion: 13
|
||||||
|
mipmaps:
|
||||||
|
mipMapMode: 0
|
||||||
|
enableMipMap: 0
|
||||||
|
sRGBTexture: 1
|
||||||
|
linearTexture: 0
|
||||||
|
fadeOut: 0
|
||||||
|
borderMipMap: 0
|
||||||
|
mipMapsPreserveCoverage: 0
|
||||||
|
alphaTestReferenceValue: 0.5
|
||||||
|
mipMapFadeDistanceStart: 1
|
||||||
|
mipMapFadeDistanceEnd: 3
|
||||||
|
bumpmap:
|
||||||
|
convertToNormalMap: 0
|
||||||
|
externalNormalMap: 0
|
||||||
|
heightScale: 0.25
|
||||||
|
normalMapFilter: 0
|
||||||
|
flipGreenChannel: 0
|
||||||
|
isReadable: 0
|
||||||
|
streamingMipmaps: 0
|
||||||
|
streamingMipmapsPriority: 0
|
||||||
|
vTOnly: 0
|
||||||
|
ignoreMipmapLimit: 0
|
||||||
|
grayScaleToAlpha: 0
|
||||||
|
generateCubemap: 6
|
||||||
|
cubemapConvolution: 0
|
||||||
|
seamlessCubemap: 0
|
||||||
|
textureFormat: 1
|
||||||
|
maxTextureSize: 2048
|
||||||
|
textureSettings:
|
||||||
|
serializedVersion: 2
|
||||||
|
filterMode: 1
|
||||||
|
aniso: 1
|
||||||
|
mipBias: 0
|
||||||
|
wrapU: 1
|
||||||
|
wrapV: 1
|
||||||
|
wrapW: 1
|
||||||
|
nPOTScale: 0
|
||||||
|
lightmap: 0
|
||||||
|
compressionQuality: 50
|
||||||
|
spriteMode: 2
|
||||||
|
spriteExtrude: 1
|
||||||
|
spriteMeshType: 1
|
||||||
|
alignment: 0
|
||||||
|
spritePivot: {x: 0.5, y: 0.5}
|
||||||
|
spritePixelsToUnits: 100
|
||||||
|
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
spriteGenerateFallbackPhysicsShape: 1
|
||||||
|
alphaUsage: 1
|
||||||
|
alphaIsTransparency: 1
|
||||||
|
spriteTessellationDetail: -1
|
||||||
|
textureType: 8
|
||||||
|
textureShape: 1
|
||||||
|
singleChannelComponent: 0
|
||||||
|
flipbookRows: 1
|
||||||
|
flipbookColumns: 1
|
||||||
|
maxTextureSizeSet: 0
|
||||||
|
compressionQualitySet: 0
|
||||||
|
textureFormatSet: 0
|
||||||
|
ignorePngGamma: 0
|
||||||
|
applyGammaDecoding: 0
|
||||||
|
swizzle: 50462976
|
||||||
|
cookieLightType: 0
|
||||||
|
platformSettings:
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: DefaultTexturePlatform
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Standalone
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
- serializedVersion: 4
|
||||||
|
buildTarget: Android
|
||||||
|
maxTextureSize: 2048
|
||||||
|
resizeAlgorithm: 0
|
||||||
|
textureFormat: -1
|
||||||
|
textureCompression: 1
|
||||||
|
compressionQuality: 50
|
||||||
|
crunchedCompression: 0
|
||||||
|
allowsAlphaSplitting: 0
|
||||||
|
overridden: 0
|
||||||
|
ignorePlatformSupport: 0
|
||||||
|
androidETC2FallbackOverride: 0
|
||||||
|
forceMaximumCompressionQuality_BC6H_BC7: 0
|
||||||
|
spriteSheet:
|
||||||
|
serializedVersion: 2
|
||||||
|
sprites:
|
||||||
|
- serializedVersion: 2
|
||||||
|
name: v.s_frame_0
|
||||||
|
rect:
|
||||||
|
serializedVersion: 2
|
||||||
|
x: 0
|
||||||
|
y: 0
|
||||||
|
width: 316
|
||||||
|
height: 75
|
||||||
|
alignment: 0
|
||||||
|
pivot: {x: 0, y: 0}
|
||||||
|
border: {x: 0, y: 0, z: 0, w: 0}
|
||||||
|
customData:
|
||||||
|
outline: []
|
||||||
|
physicsShape: []
|
||||||
|
tessellationDetail: -1
|
||||||
|
bones: []
|
||||||
|
spriteID: ccefe5b5dc6576f30800000000000000
|
||||||
|
internalID: 4568715786991894220
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
outline: []
|
||||||
|
customData:
|
||||||
|
physicsShape: []
|
||||||
|
bones: []
|
||||||
|
spriteID:
|
||||||
|
internalID: 0
|
||||||
|
vertices: []
|
||||||
|
indices:
|
||||||
|
edges: []
|
||||||
|
weights: []
|
||||||
|
secondaryTextures: []
|
||||||
|
spriteCustomMetadata:
|
||||||
|
entries: []
|
||||||
|
nameFileIdTable:
|
||||||
|
v.s_frame_0: 4568715786991894220
|
||||||
|
mipmapLimitGroupName:
|
||||||
|
pSDRemoveMatte: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@@ -141,7 +141,7 @@ PlayerSettings:
|
|||||||
loadStoreDebugModeEnabled: 0
|
loadStoreDebugModeEnabled: 0
|
||||||
visionOSBundleVersion: 1.0
|
visionOSBundleVersion: 1.0
|
||||||
tvOSBundleVersion: 1.0
|
tvOSBundleVersion: 1.0
|
||||||
bundleVersion: 1.27
|
bundleVersion: 1.29
|
||||||
preloadedAssets:
|
preloadedAssets:
|
||||||
- {fileID: -944628639613478452, guid: 2bcd2660ca9b64942af0de543d8d7100, type: 3}
|
- {fileID: -944628639613478452, guid: 2bcd2660ca9b64942af0de543d8d7100, type: 3}
|
||||||
metroInputSource: 0
|
metroInputSource: 0
|
||||||
|
|||||||
Reference in New Issue
Block a user