Commit 69557ade authored by Yousef Sameh's avatar Yousef Sameh

fake multiplayer

parent 5bf877b7
using System.Collections.Generic;
public interface IOnlineMatch
{
string matchId { get; set; }
List<MatchPlayer> players { get; set; }
MatchState state { get; set; }
void OnUpdateMatch(IOnlineMatch updatedMatch)
{
matchId = updatedMatch.matchId;
players = updatedMatch.players;
state = updatedMatch.state;
}
}
public enum MatchState
{
Waiting,
Started,
Finished
}
fileFormatVersion: 2
guid: 80603aa8ffcaf94d185a23ae4d47c9e6
\ No newline at end of file
fileFormatVersion: 2
guid: 60059e41d2cfeca18add57ada2e93873
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
using UnityEngine;
public class MatchFinderService : MonoBehaviour
{
}
fileFormatVersion: 2
guid: 84042fd921608127faf0d8e74e634a5f
\ No newline at end of file
using System;
using Newtonsoft.Json;
using Supabase.Postgrest.Attributes;
using Supabase.Postgrest.Models;
[Table("matches")]
public class Match : BaseModel
{
[PrimaryKey("id")]
[JsonProperty("id")]
public string Id { get; set; }
[Column("player_count")]
[JsonProperty("player_count")]
public int PlayerCount { get; set; }
[Column("match_state")]
[JsonProperty("match_state")]
public string MatchState { get; set; }
[Column("created_at")]
[JsonProperty("created_at")]
public DateTime CreatedAt { get; set; }
[Column("started_at")]
[JsonProperty("started_at")]
public DateTime? StartedAt { get; set; }
[Column("finished_at")]
[JsonProperty("finished_at")]
public DateTime? FinishedAt { get; set; }
}
fileFormatVersion: 2
guid: f9ae4b926d8407e3cba8783a15c14a40
\ No newline at end of file
using System;
using Newtonsoft.Json;
using Supabase.Postgrest.Attributes;
using Supabase.Postgrest.Models;
[Table("match_players")]
public class MatchPlayer : BaseModel
{
[PrimaryKey("id")]
[JsonProperty("id")]
public string Id { get; set; }
[Column("match_id")]
[JsonProperty("match_id")]
public string MatchId { get; set; }
[Column("user_id")]
[JsonProperty("user_id")]
public string UserId { get; set; }
[Column("username")]
[JsonProperty("username")]
public string Username { get; set; }
[Column("score")]
[JsonProperty("score")]
public int Score { get; set; }
[Column("has_finished")]
[JsonProperty("has_finished")]
public bool HasFinished { get; set; }
[Column("joined_at")]
[JsonProperty("joined_at")]
public DateTime JoinedAt { get; set; }
}
fileFormatVersion: 2
guid: b7a52c5b750261470a648130ebe63dd2
\ No newline at end of file
using System;
using System.Collections.Generic;
using System.Linq;
using Cysharp.Threading.Tasks;
using Supabase.Realtime;
using Supabase.Realtime.PostgresChanges;
using UnityEngine;
public class MatchService : Singleton<MatchService>, IDisposable
{
private readonly Supabase.Client _supabase;
private readonly string _userId;
private readonly string _username;
private RealtimeChannel _matchChannel;
private RealtimeChannel _playersChannel;
private string _currentMatchId;
private bool _isHost;
public Match CurrentMatch { get; private set; }
public List<MatchPlayer> CurrentPlayers { get; private set; } = new();
public MatchPlayer Me => CurrentPlayers.FirstOrDefault(p => p.UserId == _userId);
public bool IsInMatch => CurrentMatch != null && CurrentMatch.MatchState != "finished";
public bool IsHost => _isHost;
public event Action<Match> OnMatchChanged;
public event Action<List<MatchPlayer>> OnPlayersChanged;
public MatchService()
{
_supabase = SupabaseManager.Instance.Supabase();
_userId = UserService.Instance.CurrentUser.Id;
_username = UserService.Instance.CurrentUser.DisplayName;
}
public async UniTask<Match> FindMatch()
{
var existing = await GetExistingMatch();
if (existing != null)
{
Debug.Log($"[Match] Already in match: {existing.Id}");
return existing;
}
var response = await _supabase
.From<Match>()
.Select("*")
.Filter("match_state", Supabase.Postgrest.Constants.Operator.Equals, "waiting")
.Filter("player_count", Supabase.Postgrest.Constants.Operator.LessThan, "4")
.Order("created_at", Supabase.Postgrest.Constants.Ordering.Ascending)
.Limit(1)
.Get();
Match match;
if (response.Models.Count > 0)
{
match = response.Models[0];
_isHost = false;
Debug.Log($"[Match] Found existing match: {match.Id}");
}
else
{
var newMatch = new Match
{
MatchState = "waiting",
PlayerCount = 0,
};
var createResponse = await _supabase
.From<Match>()
.Insert(newMatch);
match = createResponse.Models[0];
_isHost = true;
Debug.Log($"[Match] Created new match: {match.Id} (host)");
}
_currentMatchId = match.Id;
CurrentMatch = match;
await JoinMatch(match);
await RefreshPlayers();
SubscribeToMatch();
return CurrentMatch;
}
private async UniTask<Match> GetExistingMatch()
{
var playerResponse = await _supabase
.From<MatchPlayer>()
.Select("match_id")
.Filter("user_id", Supabase.Postgrest.Constants.Operator.Equals, _userId)
.Get();
if (playerResponse.Models.Count == 0)
return null;
foreach (var mp in playerResponse.Models)
{
var matchResponse = await _supabase
.From<Match>()
.Select("*")
.Filter("id", Supabase.Postgrest.Constants.Operator.Equals, mp.MatchId)
.Filter("match_state", Supabase.Postgrest.Constants.Operator.In, new List<string> { "waiting", "started" })
.Get();
if (matchResponse.Models.Count > 0)
{
var match = matchResponse.Models[0];
_currentMatchId = match.Id;
CurrentMatch = match;
_isHost = false; // Reconnecting, don't assume host
await RefreshPlayers();
SubscribeToMatch();
return match;
}
}
return null;
}
private async UniTask RefreshPlayers()
{
var response = await _supabase
.From<MatchPlayer>()
.Where(p => p.MatchId == _currentMatchId)
.Order("joined_at", Supabase.Postgrest.Constants.Ordering.Ascending)
.Get();
CurrentPlayers = response.Models;
}
private async UniTask JoinMatch(Match match)
{
var player = new MatchPlayer
{
MatchId = match.Id,
UserId = _userId,
Username = _username,
Score = 0,
HasFinished = false,
};
await _supabase
.From<MatchPlayer>()
.Insert(player);
var newCount = match.PlayerCount + 1;
if (newCount >= 2)
{
await _supabase
.From<Match>()
.Where(m => m.Id == match.Id)
.Set(m => m.PlayerCount, newCount)
.Set(m => m.MatchState, "started")
.Set(m => m.StartedAt, DateTime.UtcNow)
.Update();
CurrentMatch.MatchState = "started";
CurrentMatch.StartedAt = DateTime.UtcNow;
}
else
{
await _supabase
.From<Match>()
.Where(m => m.Id == match.Id)
.Set(m => m.PlayerCount, newCount)
.Update();
}
CurrentMatch.PlayerCount = newCount;
Debug.Log($"[Match] Joined as player {newCount}{(_isHost ? " (host)" : "")}");
}
private void SubscribeToMatch()
{
_matchChannel?.Unsubscribe();
_playersChannel?.Unsubscribe();
_matchChannel = _supabase.Realtime.Channel($"match-{_currentMatchId}");
_matchChannel.Register(new PostgresChangesOptions(
schema: "public",
table: "matches",
eventType: PostgresChangesOptions.ListenType.Updates,
filter: $"id=eq.{_currentMatchId}"));
_matchChannel.AddPostgresChangeHandler(
listenType: PostgresChangesOptions.ListenType.Updates,
(_, change) =>
{
var match = change.Model<Match>();
UniTask.Post(() =>
{
CurrentMatch = match;
OnMatchChanged?.Invoke(match);
});
});
_playersChannel = _supabase.Realtime.Channel($"players-{_currentMatchId}");
_playersChannel.Register(new PostgresChangesOptions(
schema: "public",
table: "match_players",
eventType: PostgresChangesOptions.ListenType.All,
filter: $"match_id=eq.{_currentMatchId}"));
_playersChannel.AddPostgresChangeHandler(
listenType: PostgresChangesOptions.ListenType.All,
(_, change) =>
{
var player = change.Model<MatchPlayer>();
UniTask.Post(() =>
{
switch (change.Payload.Data.Type)
{
case Supabase.Realtime.Constants.EventType.Insert:
CurrentPlayers.Add(player);
break;
case Supabase.Realtime.Constants.EventType.Update:
var index = CurrentPlayers.FindIndex(p => p.UserId == player.UserId);
if (index >= 0) CurrentPlayers[index] = player;
break;
case Supabase.Realtime.Constants.EventType.Delete:
CurrentPlayers.RemoveAll(p => p.UserId == player.UserId);
break;
}
OnPlayersChanged?.Invoke(CurrentPlayers);
});
});
_matchChannel.Subscribe();
_playersChannel.Subscribe();
Debug.Log($"[Match] Subscribed to realtime for {_currentMatchId}");
}
public async UniTask AddScore(int points)
{
var me = Me;
if (me == null)
{
Debug.LogError("[Match] Not in match");
return;
}
var newScore = me.Score + points;
await _supabase
.From<MatchPlayer>()
.Where(p => p.MatchId == _currentMatchId)
.Where(p => p.UserId == _userId)
.Set(p => p.Score, newScore)
.Update();
me.Score = newScore;
Debug.Log($"[Match] Score: {newScore}");
}
public async UniTask FinishPlaying()
{
await _supabase
.From<MatchPlayer>()
.Where(p => p.MatchId == _currentMatchId)
.Where(p => p.UserId == _userId)
.Set(p => p.HasFinished, true)
.Update();
var me = Me;
if (me != null) me.HasFinished = true;
var allFinished = CurrentPlayers.All(p => p.HasFinished);
if (allFinished)
{
await _supabase
.From<Match>()
.Where(m => m.Id == _currentMatchId)
.Set(m => m.MatchState, "finished")
.Set(m => m.FinishedAt, DateTime.UtcNow)
.Update();
}
Debug.Log($"[Match] Finished. All done: {allFinished}");
}
public async UniTask LeaveMatch()
{
if (_currentMatchId == null) return;
if (_isHost)
{
// Host created this match — nuke everything
// CASCADE on match_players FK handles player rows
await _supabase
.From<Match>()
.Where(m => m.Id == _currentMatchId)
.Delete();
Debug.Log("[Match] Host left — match deleted");
}
else
{
// Guest — just remove yourself
await _supabase
.From<MatchPlayer>()
.Where(p => p.MatchId == _currentMatchId)
.Where(p => p.UserId == _userId)
.Delete();
await _supabase
.From<Match>()
.Where(m => m.Id == _currentMatchId)
.Set(m => m.PlayerCount, CurrentMatch.PlayerCount - 1)
.Update();
Debug.Log("[Match] Guest left");
}
Dispose();
}
// Add this method to MatchService
public void LeaveMatchSync()
{
if (_currentMatchId == null) return;
try
{
if (_isHost)
{
_supabase
.From<Match>()
.Where(m => m.Id == _currentMatchId)
.Delete()
.GetAwaiter()
.GetResult();
}
else
{
_supabase
.From<MatchPlayer>()
.Where(p => p.MatchId == _currentMatchId)
.Where(p => p.UserId == _userId)
.Delete()
.GetAwaiter()
.GetResult();
}
}
catch (Exception e)
{
Debug.LogError($"[Match] Sync cleanup failed: {e.Message}");
}
Dispose();
Debug.Log("[Match] Sync leave complete");
}
public void Dispose()
{
_matchChannel?.Unsubscribe();
_playersChannel?.Unsubscribe();
_matchChannel = null;
_playersChannel = null;
CurrentMatch = null;
CurrentPlayers.Clear();
_currentMatchId = null;
_isHost = false;
OnMatchChanged = null;
OnPlayersChanged = null;
Debug.Log("[Match] Disposed");
}
}
fileFormatVersion: 2
guid: b73e737ec498ebd4da8d49950d22f9cc
\ No newline at end of file
......@@ -17,4 +17,10 @@ public class SupabaseTester : MonoBehaviour
GameHistoryService.Instance.AddGame("CS", 3200, DateTime.Now, DateTime.Today);
}
[ContextMenu("Find Match")]
public void FindMatch()
{
MatchService.Instance.FindMatch();
}
}
......@@ -76,7 +76,6 @@ public class HomeController : MonoBehaviour
{
await UniTask.Delay(2000);
var ran = Random.Range(0, 100);
print($"Fake Activity: حصلت على {ran} نقطة خبرة!");
OnNewActivityReceived(new Activity { Message = $"لقد حصلت على {ran} نقطة خبرة!" });
}
}
......
......@@ -455,6 +455,51 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::HomeController
mainMenuDocument: {fileID: 96388575}
--- !u!1 &1011050774
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1011050775}
- component: {fileID: 1011050776}
m_Layer: 0
m_Name: SupabaseTester
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1011050775
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1011050774}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2129398203}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1011050776
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1011050774}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 87e81a7f39f4c68ea8e8ab8d8462bd14, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::SupabaseTester
supabaseAuthentication: {fileID: 0}
--- !u!1 &1859771920
GameObject:
m_ObjectHideFlags: 0
......@@ -670,6 +715,7 @@ Transform:
- {fileID: 882327170}
- {fileID: 755069556}
- {fileID: 1859771921}
- {fileID: 1011050775}
m_Father: {fileID: 744843710}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1660057539 &9223372036854775807
......
......@@ -158,6 +158,7 @@ RectTransform:
- {fileID: 8716194432650774373}
- {fileID: 6047220882580981041}
- {fileID: 2974416343790448367}
- {fileID: 1135406654181278682}
- {fileID: 6746614375622947549}
- {fileID: 625702886984310365}
- {fileID: 4609650033240504519}
......@@ -250,6 +251,7 @@ MonoBehaviour:
_errorUI: {fileID: 6695881930393796689}
_resultsUI: {fileID: 2062261329829810082}
_countDownGroup: {fileID: 1182562254121867504}
_waitingForPlayersGroup: {fileID: 7241970758368405782}
_optionsPanel: {fileID: 8280680030703331504}
_feedbackGroup: {fileID: 344031917242914019}
_progressText: {fileID: 7196988870985223380}
......@@ -1493,6 +1495,148 @@ MonoBehaviour:
clickColor: {r: 0.2, g: 0.5, b: 1, a: 0.6}
fadeDuration: 0.25
hoverColor: {r: 0.2, g: 0.5, b: 1, a: 0.1}
--- !u!1 &3019886760604928320
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4807829741731571677}
- component: {fileID: 3974575150665437606}
- component: {fileID: 1153969497962315254}
m_Layer: 0
m_Name: Txt
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &4807829741731571677
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3019886760604928320}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1135406654181278682}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 500, y: 60}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3974575150665437606
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3019886760604928320}
m_CullTransparentMesh: 1
--- !u!114 &1153969497962315254
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3019886760604928320}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0e20cc1eab1d04e7c9515c000ca5ba22, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::ALArcade.ArabicTMP.ArabicTextMeshProUGUI
m_Material: {fileID: 0}
m_Color: {r: 1, g: 1, b: 1, a: 1}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_text: "\uFE91\uFE8E\uFEE7\uFE98\uFEC8\uFE8E\u0631 \uFEFB\uFECB\uFE92\uFEF4\uFEE6..."
m_isRightToLeft: 1
m_fontAsset: {fileID: 11400000, guid: 8b4edeefed0fc9f60b1084045988b4cb, type: 2}
m_sharedMaterial: {fileID: 2623560040057873289, guid: 8b4edeefed0fc9f60b1084045988b4cb, type: 2}
m_fontSharedMaterials: []
m_fontMaterial: {fileID: 0}
m_fontMaterials: []
m_fontColor32:
serializedVersion: 2
rgba: 4294967295
m_fontColor: {r: 1, g: 1, b: 1, a: 1}
m_enableVertexGradient: 0
m_colorMode: 3
m_fontColorGradient:
topLeft: {r: 1, g: 1, b: 1, a: 1}
topRight: {r: 1, g: 1, b: 1, a: 1}
bottomLeft: {r: 1, g: 1, b: 1, a: 1}
bottomRight: {r: 1, g: 1, b: 1, a: 1}
m_fontColorGradientPreset: {fileID: 0}
m_spriteAsset: {fileID: 0}
m_tintAllSprites: 0
m_StyleSheet: {fileID: 0}
m_TextStyleHashCode: -1183493901
m_overrideHtmlColors: 0
m_faceColor:
serializedVersion: 2
rgba: 4294967295
m_fontSize: 28
m_fontSizeBase: 28
m_fontWeight: 400
m_enableAutoSizing: 0
m_fontSizeMin: 18
m_fontSizeMax: 72
m_fontStyle: 0
m_HorizontalAlignment: 2
m_VerticalAlignment: 512
m_textAlignment: 65535
m_characterSpacing: 0
m_characterHorizontalScale: 1
m_wordSpacing: 0
m_lineSpacing: 0
m_lineSpacingMax: 0
m_paragraphSpacing: 0
m_charWidthMaxAdj: 0
m_TextWrappingMode: 1
m_wordWrappingRatios: 0.4
m_overflowMode: 0
m_linkedTextComponent: {fileID: 0}
parentLinkedComponent: {fileID: 0}
m_enableKerning: 0
m_ActiveFontFeatures: 6e72656b
m_enableExtraPadding: 0
checkPaddingRequired: 0
m_isRichText: 1
m_EmojiFallbackSupport: 1
m_parseCtrlCharacters: 1
m_isOrthographic: 1
m_isCullingEnabled: 0
m_horizontalMapping: 0
m_verticalMapping: 0
m_uvLineOffset: 0
m_geometrySortingOrder: 0
m_IsTextObjectScaleStatic: 0
m_VertexBufferAutoSizeReduction: 0
m_useMaxVisibleDescender: 1
m_pageToDisplay: 1
m_margin: {x: 0, y: 0, z: 0, w: 0}
m_isUsingLegacyAnimationComponent: 0
m_isVolumetricText: 0
m_hasFontAssetChanged: 0
m_baseMaterial: {fileID: 0}
m_maskOffset: {x: 0, y: 0, z: 0, w: 0}
m_ArabicText: "\u0628\u0627\u0646\u062A\u0638\u0627\u0631 \u0644\u0627\u0639\u0628\u064A\u0646..."
m_ShowTashkeel: 1
m_PreserveNumbers: 1
m_FixTags: 1
m_ForceRTL: 1
--- !u!1 &3190950786820414927
GameObject:
m_ObjectHideFlags: 0
......@@ -2077,6 +2221,95 @@ MonoBehaviour:
m_PreserveNumbers: 1
m_FixTags: 1
m_ForceRTL: 1
--- !u!1 &4852549295037247943
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1135406654181278682}
- component: {fileID: 7241970758368405782}
- component: {fileID: 9160941753166587409}
- component: {fileID: 4348413795064593866}
m_Layer: 0
m_Name: WaitingForPlayers
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!224 &1135406654181278682
RectTransform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4852549295037247943}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 4807829741731571677}
m_Father: {fileID: 6699056385477313718}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 791.8534, y: 429.32}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!225 &7241970758368405782
CanvasGroup:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4852549295037247943}
m_Enabled: 1
m_Alpha: 1
m_Interactable: 1
m_BlocksRaycasts: 1
m_IgnoreParentGroups: 0
--- !u!222 &9160941753166587409
CanvasRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4852549295037247943}
m_CullTransparentMesh: 1
--- !u!114 &4348413795064593866
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4852549295037247943}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.UI.Image
m_Material: {fileID: 0}
m_Color: {r: 0.1254902, g: 0.1254902, b: 0.65882355, a: 0.92}
m_RaycastTarget: 1
m_RaycastPadding: {x: 0, y: 0, z: 0, w: 0}
m_Maskable: 1
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 21300000, guid: a54a00aa58b9b455c895e9312d25164d, type: 3}
m_Type: 1
m_PreserveAspect: 0
m_FillCenter: 1
m_FillMethod: 4
m_FillAmount: 1
m_FillClockwise: 1
m_FillOrigin: 0
m_UseSpriteMesh: 0
m_PixelsPerUnitMultiplier: 1
--- !u!1 &5194712150942957175
GameObject:
m_ObjectHideFlags: 0
......
......@@ -10,6 +10,7 @@ namespace com.al_arcade.cs
using System.Linq;
using shared;
using Unity.Cinemachine;
using Unity.VisualScripting;
using UnityEngine.SceneManagement;
public enum CsGameState
......@@ -23,10 +24,18 @@ namespace com.al_arcade.cs
Complete,
}
public class CsGameManager : MonoBehaviour
public class CsGameManager : MonoBehaviour, IMultiplayerGame
{
public static CsGameManager Instance { get; private set; }
[Header("Multiplayer")]
[SerializeField] private MultiplayerBridge mpBridge;
public bool IsMultiplayer { get; private set; }
public Match CurrentMatch { get; private set; }
public List<MatchPlayer> Players { get; private set; } = new();
public MatchPlayer Me { get; private set; }
[Header("Settings")]
[SerializeField]
private float sentenceShowDelay = 0.5f;
......@@ -84,6 +93,7 @@ namespace com.al_arcade.cs
CinemachineTargetGroup _targetGroup;
CinemachineGroupFraming _groupFraming;
private void Awake()
{
if (Instance != null && Instance != this)
......@@ -95,8 +105,53 @@ namespace com.al_arcade.cs
_targetGroup = FindFirstObjectByType<CinemachineTargetGroup>();
_groupFraming = FindFirstObjectByType<CinemachineGroupFraming>();
mpBridge = transform.AddComponent<MultiplayerBridge>();
mpBridge.Bind(this);
}
public void InitMultiplayer(Match match, List<MatchPlayer> players)
{
IsMultiplayer = true;
CurrentMatch = match;
Players = players;
Me = players.FirstOrDefault(p => p.UserId == UserService.Instance.CurrentUser.Id);
Debug.Log($"[CS MP] Initialized with {players.Count} players");
}
public void OnMatchChanged(Match match)
{
CurrentMatch = match;
if (match.MatchState == "finished")
{
_state = CsGameState.Complete;
StopAllCoroutines();
var winner = Players.OrderByDescending(p => p.Score).First();
bool iWon = winner.UserId == Me?.UserId;
if (iWon)
StartCoroutine(VictorySequence());
else
StartCoroutine(LoseSequence());
}
}
public void OnPlayersChanged(List<MatchPlayer> players)
{
Players = players;
Me = players.FirstOrDefault(p => p.UserId == UserService.Instance.CurrentUser.Id);
print("Players updated:");
// Update scoreboard UI
// uiManager.UpdateScoreboard(players);
}
// Score reporting stays the same
// In CorrectAnswerFeedback: if (IsMultiplayer) mpBridge.ReportScore(points);
// When finished: if (IsMultiplayer) mpBridge.ReportFinished();
private void Update()
{
if (_state == CsGameState.WaitingForWordClick || _state == CsGameState.WaitingForDrop)
......@@ -247,6 +302,10 @@ namespace com.al_arcade.cs
if (uiManager != null)
uiManager.HideLoading();
uiManager.ShowWaitingForPlayers();
yield return new WaitUntil(() => CurrentMatch != null && CurrentMatch.MatchState == "started");
uiManager.HideWaitingForPlayers();
yield return uiManager.ShowCountDown();
gameStartTime = DateTime.Now;
......@@ -367,6 +426,8 @@ namespace com.al_arcade.cs
uiManager.SetStreak(_streak);
}
mpBridge.ReportScore(_score);
SSAudioManager.Instance.PlayCorrectDrag();
yield return new WaitForSeconds(0.4f);
......@@ -554,6 +615,13 @@ namespace com.al_arcade.cs
public int Score => _score;
private void OnApplicationQuit()
{
MatchService.Instance.LeaveMatchSync();
}
}
}
......@@ -16,7 +16,7 @@ namespace com.al_arcade.cs
public class CsUIManager : MonoBehaviour
{
[SerializeField] protected Canvas _canvas;
[SerializeField] protected CanvasGroup _gameUI, _loadingUI, _errorUI, _resultsUI, _countDownGroup;
[SerializeField] protected CanvasGroup _gameUI, _loadingUI, _errorUI, _resultsUI, _countDownGroup, _waitingForPlayersGroup;
[SerializeField] protected CanvasGroup _optionsPanel, _feedbackGroup;
[SerializeField] protected UniText _progressText;
......@@ -440,6 +440,18 @@ namespace com.al_arcade.cs
public void ShowLoading(string msg)
{ _loadingUI.gameObject.SetActive(true); if (_loadingText != null) _loadingText.arabicText = msg; _loadingUI.DOFade(1f, 0.3f); }
public void ShowWaitingForPlayers()
{
_waitingForPlayersGroup.gameObject.SetActive(true);
_waitingForPlayersGroup.alpha = 0;
_waitingForPlayersGroup.DOFade(1f, 0.3f);
}
public void HideWaitingForPlayers()
{
_waitingForPlayersGroup.DOFade(0f, 0.3f).OnComplete(() => _waitingForPlayersGroup.gameObject.SetActive(false));
}
public void HideLoading()
{ _loadingUI.DOFade(0f, 0.3f).OnComplete(() => _loadingUI.gameObject.SetActive(false)); }
......
using System.Collections.Generic;
public interface IMultiplayerGame
{
bool IsMultiplayer { get; }
Match CurrentMatch { get; }
List<MatchPlayer> Players { get; }
MatchPlayer Me { get; }
void InitMultiplayer(Match match, List<MatchPlayer> players);
void OnMatchChanged(Match match);
void OnPlayersChanged(List<MatchPlayer> players);
}
fileFormatVersion: 2
guid: 3b3265d30fee77f61b8fe160ca67a9c4
\ No newline at end of file
using System.Collections.Generic;
using Cysharp.Threading.Tasks;
using UnityEngine;
public class MultiplayerBridge : MonoBehaviour
{
private IMultiplayerGame _game;
private MatchService _matchService;
private bool _bound;
[Header("Settings")]
[SerializeField] private bool _autoFindMatch = true;
public bool IsBound => _bound;
public async UniTask Bind(IMultiplayerGame game)
{
_game = game;
_matchService = MatchService.Instance;
if (_matchService == null)
{
Debug.LogError("[MP Bridge] MatchService not found");
return;
}
if (!_matchService.IsInMatch)
{
if (!_autoFindMatch)
{
Debug.Log("[MP Bridge] No active match — running solo");
return;
}
Debug.Log("[MP Bridge] No active match — finding one...");
var match = await _matchService.FindMatch();
if (match == null)
{
Debug.LogError("[MP Bridge] Failed to find/create match");
return;
}
if (match.MatchState == "waiting")
{
Debug.Log("[MP Bridge] Waiting for players...");
var started = false;
void OnStart(Match m)
{
if (m.MatchState == "started") started = true;
}
_matchService.OnMatchChanged += OnStart;
await UniTask.WaitUntil(() => started);
_matchService.OnMatchChanged -= OnStart;
Debug.Log("[MP Bridge] All players ready");
}
}
_game.InitMultiplayer(_matchService.CurrentMatch, _matchService.CurrentPlayers);
_matchService.OnMatchChanged += HandleMatchChanged;
_matchService.OnPlayersChanged += HandlePlayersChanged;
_bound = true;
Debug.Log("[MP Bridge] Bound to match");
}
private void HandleMatchChanged(Match match)
{
_game.OnMatchChanged(match);
}
private void HandlePlayersChanged(List<MatchPlayer> players)
{
_game.OnPlayersChanged(players);
}
public void ReportScore(int points)
{
if (!_bound) return;
_matchService.AddScore(points).Forget();
}
public void ReportFinished()
{
if (!_bound) return;
_matchService.FinishPlaying().Forget();
}
public async UniTask Leave()
{
if (!_bound || _matchService == null) return;
await _matchService.LeaveMatch();
Unbind();
}
private void Unbind()
{
if (!_bound || _matchService == null) return;
_matchService.OnMatchChanged -= HandleMatchChanged;
_matchService.OnPlayersChanged -= HandlePlayersChanged;
_bound = false;
Debug.Log("[MP Bridge] Unbound");
}
private void OnDestroy()
{
Unbind();
}
}
fileFormatVersion: 2
guid: 73f8d50c2a9fd8012b057a1ecf5771e7
\ No newline at end of file
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
OcclusionCullingSettings:
m_ObjectHideFlags: 0
serializedVersion: 2
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: 0.25
backfaceThreshold: 100
m_SceneGUID: 00000000000000000000000000000000
m_OcclusionCullingData: {fileID: 0}
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 10
m_Fog: 0
m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
m_FogMode: 3
m_FogDensity: 0.01
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1}
m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 0
m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
m_SkyboxMaterial: {fileID: 10304, guid: 0000000000000000f000000000000000, type: 0}
m_HaloStrength: 0.5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 13
m_BakeOnSceneLoad: 0
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 1
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 12
m_Resolution: 2
m_BakeResolution: 40
m_AtlasSize: 1024
m_AO: 0
m_AOMaxDistance: 1
m_CompAOExponent: 1
m_CompAOExponentDirect: 0
m_ExtractAmbientOcclusion: 0
m_Padding: 2
m_LightmapParameters: {fileID: 0}
m_LightmapsBakeMode: 1
m_TextureCompression: 1
m_ReflectionCompression: 2
m_MixedBakeMode: 2
m_BakeBackend: 2
m_PVRSampling: 1
m_PVRDirectSampleCount: 32
m_PVRSampleCount: 512
m_PVRBounces: 2
m_PVREnvironmentSampleCount: 256
m_PVREnvironmentReferencePointCount: 2048
m_PVRFilteringMode: 1
m_PVRDenoiserTypeDirect: 1
m_PVRDenoiserTypeIndirect: 1
m_PVRDenoiserTypeAO: 1
m_PVRFilterTypeDirect: 0
m_PVRFilterTypeIndirect: 0
m_PVRFilterTypeAO: 0
m_PVREnvironmentMIS: 1
m_PVRCulling: 1
m_PVRFilteringGaussRadiusDirect: 1
m_PVRFilteringGaussRadiusIndirect: 1
m_PVRFilteringGaussRadiusAO: 1
m_PVRFilteringAtrousPositionSigmaDirect: 0.5
m_PVRFilteringAtrousPositionSigmaIndirect: 2
m_PVRFilteringAtrousPositionSigmaAO: 1
m_ExportTrainingData: 0
m_TrainingDataDestination: TrainingData
m_LightProbeSampleCountMultiplier: 4
m_LightingDataAsset: {fileID: 20201, guid: 0000000000000000f000000000000000, type: 0}
m_LightingSettings: {fileID: 0}
--- !u!196 &4
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 3
agentTypeID: 0
agentRadius: 0.5
agentHeight: 2
agentSlope: 45
agentClimb: 0.4
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
minRegionArea: 2
manualCellSize: 0
cellSize: 0.16666667
manualTileSize: 0
tileSize: 256
buildHeightMesh: 0
maxJobWorkers: 0
preserveTilesOutsideBounds: 0
debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &232732868
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 232732870}
- component: {fileID: 232732869}
- component: {fileID: 232732871}
m_Layer: 0
m_Name: SupabaseListener
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &232732869
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 232732868}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 14bbed8449713f51db869aa6dba9c6fa, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::SessionListener
SupabaseManager: {fileID: 689087718}
LoggedIn:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 232732871}
m_TargetAssemblyTypeName: SceneSwitcherHelpers, Assembly-CSharp
m_MethodName: LoadMainMenu
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
LoggedOut:
m_PersistentCalls:
m_Calls:
- m_Target: {fileID: 232732871}
m_TargetAssemblyTypeName: SceneSwitcherHelpers, Assembly-CSharp
m_MethodName: LoadLogin
m_Mode: 1
m_Arguments:
m_ObjectArgument: {fileID: 0}
m_ObjectArgumentAssemblyTypeName: UnityEngine.Object, UnityEngine
m_IntArgument: 0
m_FloatArgument: 0
m_StringArgument:
m_BoolArgument: 0
m_CallState: 2
--- !u!4 &232732870
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 232732868}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 616.9188, y: 1194.7426, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &232732871
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 232732868}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e8c8bd5f339c3203d84f2c7279a64eb0, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::SceneSwitcherHelpers
--- !u!1 &414692743
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 414692744}
m_Layer: 0
m_Name: '----------- Root ----------- '
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &414692744
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 414692743}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 95.29111, y: 1207.8973, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 2025685769}
- {fileID: 1707671417}
- {fileID: 2025346609}
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &689087716
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 689087717}
- component: {fileID: 689087718}
m_Layer: 0
m_Name: Supabase
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &689087717
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 689087716}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 616.9188, y: 1194.7426, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &689087718
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 689087716}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5baed90edb7a40852b66a41622c93859, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::SupabaseManager
SessionListener: {fileID: 232732869}
--- !u!1 &1113388150
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1113388151}
- component: {fileID: 1113388152}
m_Layer: 0
m_Name: LoginPageAnimation
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1113388151
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1113388150}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1707671417}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1113388152
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1113388150}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: af20b018acf2e55458d3f391260841c5, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::LoginPageAnimation
loginPage: {fileID: 2143987065}
--- !u!1 &1352663825
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1352663828}
- component: {fileID: 1352663827}
- component: {fileID: 1352663826}
m_Layer: 0
m_Name: EventSystem
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1352663826
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1352663825}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 01614664b831546d2ae94a42149d80ac, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.InputSystem::UnityEngine.InputSystem.UI.InputSystemUIInputModule
m_SendPointerHoverToParent: 1
m_MoveRepeatDelay: 0.5
m_MoveRepeatRate: 0.1
m_XRTrackingOrigin: {fileID: 0}
m_ActionsAsset: {fileID: -944628639613478452, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_PointAction: {fileID: -1654692200621890270, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_MoveAction: {fileID: -8784545083839296357, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_SubmitAction: {fileID: 392368643174621059, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_CancelAction: {fileID: 7727032971491509709, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_LeftClickAction: {fileID: 3001919216989983466, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_MiddleClickAction: {fileID: -2185481485913320682, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_RightClickAction: {fileID: -4090225696740746782, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_ScrollWheelAction: {fileID: 6240969308177333660, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_TrackedDevicePositionAction: {fileID: 6564999863303420839, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_TrackedDeviceOrientationAction: {fileID: 7970375526676320489, guid: ca9f5fa95ffab41fb9a615ab714db018, type: 3}
m_DeselectOnBackgroundClick: 1
m_PointerBehavior: 0
m_CursorLockBehavior: 0
m_ScrollDeltaPerTick: 6
--- !u!114 &1352663827
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1352663825}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 76c392e42b5098c458856cdf6ecaaaa1, type: 3}
m_Name:
m_EditorClassIdentifier: UnityEngine.UI::UnityEngine.EventSystems.EventSystem
m_FirstSelected: {fileID: 0}
m_sendNavigationEvents: 1
m_DragThreshold: 10
--- !u!4 &1352663828
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1352663825}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -95.29111, y: -1207.8973, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2025346609}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1486533216
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1486533217}
- component: {fileID: 1486533218}
m_Layer: 0
m_Name: SupabaseAuthentication
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1486533217
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1486533216}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 616.9188, y: 1194.7426, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 0}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1486533218
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1486533216}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 740bc2dc1ba97be68adb58313f40de23, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::SupabaseAuthentication
--- !u!1 &1707671416
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1707671417}
m_Layer: 0
m_Name: ------ Scripts ------
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1707671417
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1707671416}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1113388151}
- {fileID: 1746642441}
m_Father: {fileID: 414692744}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &1746642440
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1746642441}
- component: {fileID: 1746642442}
m_Layer: 0
m_Name: LoginController
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1746642441
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1746642440}
serializedVersion: 2
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 1707671417}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &1746642442
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1746642440}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 15584a60abf537c4fb863ba3aeb3ee6d, type: 3}
m_Name:
m_EditorClassIdentifier: Assembly-CSharp::LoginController
uIDocument: {fileID: 2143987065}
--- !u!1 &2025346608
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2025346609}
m_Layer: 0
m_Name: '------ UI ------ '
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &2025346609
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2025346608}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children:
- {fileID: 1352663828}
- {fileID: 2143987066}
m_Father: {fileID: 414692744}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1 &2025685766
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2025685769}
- component: {fileID: 2025685768}
- component: {fileID: 2025685767}
- component: {fileID: 2025685770}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!81 &2025685767
AudioListener:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2025685766}
m_Enabled: 1
--- !u!20 &2025685768
Camera:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2025685766}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 2
m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0}
m_projectionMatrixMode: 1
m_GateFitMode: 2
m_FOVAxisMode: 0
m_Iso: 200
m_ShutterSpeed: 0.005
m_Aperture: 16
m_FocusDistance: 10
m_FocalLength: 50
m_BladeCount: 5
m_Curvature: {x: 2, y: 11}
m_BarrelClipping: 0.25
m_Anamorphism: 0
m_SensorSize: {x: 36, y: 24}
m_LensShift: {x: 0, y: 0}
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: 0.3
far clip plane: 1000
field of view: 60
orthographic: 0
orthographic size: 5
m_Depth: -1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_TargetEye: 3
m_HDR: 1
m_AllowMSAA: 1
m_AllowDynamicResolution: 0
m_ForceIntoRT: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: 0.022
--- !u!4 &2025685769
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2025685766}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -95.29111, y: -1206.8973, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 414692744}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!114 &2025685770
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2025685766}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: a79441f348de89743a2939f4d699eac1, type: 3}
m_Name:
m_EditorClassIdentifier: Unity.RenderPipelines.Universal.Runtime::UnityEngine.Rendering.Universal.UniversalAdditionalCameraData
m_RenderShadows: 1
m_RequiresDepthTextureOption: 2
m_RequiresOpaqueTextureOption: 2
m_CameraType: 0
m_Cameras: []
m_RendererIndex: -1
m_VolumeLayerMask:
serializedVersion: 2
m_Bits: 1
m_VolumeTrigger: {fileID: 0}
m_VolumeFrameworkUpdateModeOption: 2
m_RenderPostProcessing: 0
m_Antialiasing: 0
m_AntialiasingQuality: 2
m_StopNaN: 0
m_Dithering: 0
m_ClearDepth: 1
m_AllowXRRendering: 1
m_AllowHDROutput: 1
m_UseScreenCoordOverride: 0
m_ScreenSizeOverride: {x: 0, y: 0, z: 0, w: 0}
m_ScreenCoordScaleBias: {x: 0, y: 0, z: 0, w: 0}
m_RequiresDepthTexture: 0
m_RequiresColorTexture: 0
m_TaaSettings:
m_Quality: 3
m_FrameInfluence: 0.1
m_JitterScale: 1
m_MipBias: 0
m_VarianceClampScale: 0.9
m_ContrastAdaptiveSharpening: 0
m_Version: 2
--- !u!1 &2143987064
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 2143987066}
- component: {fileID: 2143987065}
m_Layer: 5
m_Name: UIDocument
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &2143987065
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2143987064}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 19102, guid: 0000000000000000e000000000000000, type: 0}
m_Name:
m_EditorClassIdentifier: UnityEngine.dll::UnityEngine.UIElements.UIDocument
m_PanelSettings: {fileID: 11400000, guid: e0a4bf855a462e847a2e745fa4abf6da, type: 2}
m_ParentUI: {fileID: 0}
sourceAsset: {fileID: 9197481963319205126, guid: c563c00100793fd4e9d71d5f6bcb78e7, type: 3}
m_SortingOrder: 0
m_Position: 0
m_WorldSpaceSizeMode: 1
m_WorldSpaceWidth: 1920
m_WorldSpaceHeight: 1080
m_PivotReferenceSize: 0
m_Pivot: 0
m_WorldSpaceCollider: {fileID: 0}
--- !u!4 &2143987066
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2143987064}
serializedVersion: 2
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
m_LocalPosition: {x: -95.29111, y: -1207.8973, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_ConstrainProportionsScale: 0
m_Children: []
m_Father: {fileID: 2025346609}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!1660057539 &9223372036854775807
SceneRoots:
m_ObjectHideFlags: 0
m_Roots:
- {fileID: 232732870}
- {fileID: 1486533217}
- {fileID: 689087717}
- {fileID: 414692744}
fileFormatVersion: 2
guid: 9e38646d496cf83b48d584022a8ab565
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
......@@ -10,6 +10,8 @@
"com.unity.ide.visualstudio": "2.0.26",
"com.unity.inputsystem": "1.18.0",
"com.unity.multiplayer.center": "1.0.1",
"com.unity.multiplayer.center.quickstart": "1.1.1",
"com.unity.multiplayer.playmode": "2.0.2",
"com.unity.nuget.newtonsoft-json": "3.2.2",
"com.unity.postprocessing": "3.5.1",
"com.unity.recorder": "5.1.6",
......
......@@ -126,6 +126,25 @@
"com.unity.modules.uielements": "1.0.0"
}
},
"com.unity.multiplayer.center.quickstart": {
"version": "1.1.1",
"depth": 0,
"source": "registry",
"dependencies": {
"com.unity.modules.uielements": "1.0.0",
"com.unity.multiplayer.center": "1.0.0"
},
"url": "https://packages.unity.com"
},
"com.unity.multiplayer.playmode": {
"version": "2.0.2",
"depth": 0,
"source": "registry",
"dependencies": {
"com.unity.nuget.newtonsoft-json": "2.0.2"
},
"url": "https://packages.unity.com"
},
"com.unity.nuget.mono-cecil": {
"version": "1.11.6",
"depth": 2,
......
{
"PlayerTags": [],
"version": "6000.3.0f1"
}
\ No newline at end of file
......@@ -9,31 +9,31 @@ EditorUserSettings:
value: 18134705175a055722080a3115371d4a0d55006876786860616b0471b8b2656eacb72ba5a52a362c3c0ee63201181433fe3e101bf3250b06144ca74c24f1190708e016c213c61a52f91c12cac80fd8edd298e1e4d1fde2cacddeacbcc1fee7eef0e3b6faa69af9ceaeaaec81a6d2c2c8c8c4b2e5dfd5ccd3f8cf
flags: 0
RecentlyUsedSceneGuid-0:
value: 5208560200560f090f5d5e2743730e444516192b757e23667b7e4863b4e36c39
value: 5200570406560d58095e5c75432609124f154e737a2d2432787e4b62b4e1366a
flags: 0
RecentlyUsedSceneGuid-1:
value: 5200570406560d58095e5c75432609124f154e737a2d2432787e4b62b4e1366a
value: 545005025c000d0b0f5c087516715944424e4d7b747e2568287e4c64b6e1316e
flags: 0
RecentlyUsedSceneGuid-2:
value: 545005025c000d0b0f5c087516715944424e4d7b747e2568287e4c64b6e1316e
value: 0003525055055d020e0b0a7216755d444215417e787d27362e2f4866b2e1323e
flags: 0
RecentlyUsedSceneGuid-3:
value: 0003525055055d020e0b0a7216755d444215417e787d27362e2f4866b2e1323e
value: 5305515503010a0e0f580977147208444e151a78787b726775711931bbe1613e
flags: 0
RecentlyUsedSceneGuid-4:
value: 5305515503010a0e0f580977147208444e151a78787b726775711931bbe1613e
value: 5304575f5c0c51035d5a5e771271594417154e7c2d7b70647b7b4c35bbe1646d
flags: 0
RecentlyUsedSceneGuid-5:
value: 5304575f5c0c51035d5a5e771271594417154e7c2d7b70647b7b4c35bbe1646d
value: 0752035101010f0c54595b2046760e44134e4e7a7f7d71677c2c4836b7b4633e
flags: 0
RecentlyUsedSceneGuid-6:
value: 0752035101010f0c54595b2046760e44134e4e7a7f7d71677c2c4836b7b4633e
value: 52080c51560d5f03580b5e7242700c4446164f7d2e7f77612c281f32e0b8603d
flags: 0
RecentlyUsedSceneGuid-7:
value: 5701055506000a030f5c542744260844404f4d73797975367c2c1e6ab7e2653d
value: 5a54075e53015f5f59575a21167b0c12424f1c7f747c76627f284532e0b5626d
flags: 0
RecentlyUsedSceneGuid-8:
value: 52080c51560d5f03580b5e7242700c4446164f7d2e7f77612c281f32e0b8603d
value: 5701055506000a030f5c542744260844404f4d73797975367c2c1e6ab7e2653d
flags: 0
RecentlyUsedSceneGuid-9:
value: 060203560401505a595d0a7345200d44404e1b7e2d707e617b7f4d63e7b6606b
......
......@@ -19,12 +19,12 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 36
width: 1904
width: 948
height: 983
m_MinSize: {x: 300, y: 112}
m_MaxSize: {x: 24288, y: 16192}
vertical: 0
controlID: 17415
controlID: 3276
draggingID: 0
--- !u!114 &2
MonoBehaviour:
......@@ -47,9 +47,9 @@ MonoBehaviour:
m_TextWithWhitespace: "Game\u200B"
m_Pos:
serializedVersion: 2
x: 355
x: 177
y: 61
width: 1097
width: 545
height: 606
m_SerializedDataModeController:
m_DataMode: 0
......@@ -97,7 +97,7 @@ MonoBehaviour:
m_HSlider: 0
m_VSlider: 0
m_IgnoreScrollWheelUntilClicked: 0
m_EnableMouseInput: 0
m_EnableMouseInput: 1
m_EnableSliderZoomHorizontal: 0
m_EnableSliderZoomVertical: 0
m_UniformScale: 1
......@@ -106,23 +106,23 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 21
width: 1097
width: 545
height: 585
m_Scale: {x: 0.24375, y: 0.24375}
m_Translation: {x: 548.5, y: 292.5}
m_Scale: {x: 0.24374999, y: 0.24375}
m_Translation: {x: 272.5, y: 292.5}
m_MarginLeft: 0
m_MarginRight: 0
m_MarginTop: 0
m_MarginBottom: 0
m_LastShownAreaInsideMargins:
serializedVersion: 2
x: -2250.2563
x: -1117.9487
y: -1200
width: 4500.5127
width: 2235.8975
height: 2400
m_MinimalGUI: 1
m_defaultScale: 0.24375
m_LastWindowPixelSize: {x: 1097, y: 606}
m_LastWindowPixelSize: {x: 545, y: 606}
m_ClearInEditMode: 1
m_NoCameraWarning: 1
m_LowResolutionForAspectRatios: 01000000000000000000
......@@ -148,12 +148,12 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 0
width: 1454
width: 724
height: 983
m_MinSize: {x: 200, y: 112}
m_MaxSize: {x: 16192, y: 16192}
vertical: 1
controlID: 17416
controlID: 3277
draggingID: 0
--- !u!114 &4
MonoBehaviour:
......@@ -174,12 +174,12 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 0
width: 1454
width: 724
height: 632
m_MinSize: {x: 200, y: 56}
m_MaxSize: {x: 16192, y: 8096}
vertical: 0
controlID: 17417
controlID: 3278
draggingID: 0
--- !u!114 &5
MonoBehaviour:
......@@ -198,7 +198,7 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 0
width: 355
width: 177
height: 632
m_MinSize: {x: 201, y: 226}
m_MaxSize: {x: 4001, y: 4026}
......@@ -230,7 +230,7 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 61
width: 354
width: 176
height: 606
m_SerializedDataModeController:
m_DataMode: 0
......@@ -253,32 +253,11 @@ MonoBehaviour:
m_LastClickedID:
m_Data: 0
m_ExpandedIDs:
- m_Data: -71546
- m_Data: -68228
- m_Data: -44434
- m_Data: -44200
- m_Data: -43538
- m_Data: -38984
- m_Data: -37594
- m_Data: -37584
- m_Data: -37574
- m_Data: -32768
- m_Data: -22248
- m_Data: -16466
- m_Data: -8816
- m_Data: -39438
- m_Data: -33872
- m_Data: -31324
- m_Data: -14854
- m_Data: -1344
- m_Data: -12
- m_Data: 58532
- m_Data: 58540
- m_Data: 58550
- m_Data: 58582
- m_Data: 62798
- m_Data: 71130
- m_Data: 71352
- m_Data: 75232
- m_Data: 75264
- m_Data: 76034
- m_Data: 76064
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
......@@ -319,9 +298,9 @@ MonoBehaviour:
m_Children: []
m_Position:
serializedVersion: 2
x: 355
x: 177
y: 0
width: 1099
width: 547
height: 632
m_MinSize: {x: 202, y: 226}
m_MaxSize: {x: 4002, y: 4026}
......@@ -940,9 +919,9 @@ MonoBehaviour:
m_AudioPlay: 0
m_DebugDrawModesUseInteractiveLightBakingData: 0
m_Position:
m_Target: {x: 0, y: 0, z: 0}
m_Target: {x: 0.043204196, y: -0.01800735, z: -0.0003897087}
speed: 2
m_Value: {x: 0, y: 0, z: 0}
m_Value: {x: 0.043204196, y: -0.01800735, z: -0.0003897087}
m_RenderMode: 0
m_CameraMode:
drawMode: 0
......@@ -992,9 +971,9 @@ MonoBehaviour:
speed: 2
m_Value: {x: 0, y: 0, z: 0, w: 1}
m_Size:
m_Target: 0.8660254
m_Target: 0.9049965
speed: 2
m_Value: 0.8660254
m_Value: 0.9049965
m_Ortho:
m_Target: 1
speed: 2
......@@ -1038,25 +1017,25 @@ MonoBehaviour:
m_Enabled: 1
m_EditorHideFlags: 1
m_Script: {fileID: 12006, guid: 0000000000000000e000000000000000, type: 0}
m_Name: ConsoleWindow
m_Name: ProjectBrowser
m_EditorClassIdentifier:
m_Children: []
m_Position:
serializedVersion: 2
x: 0
y: 632
width: 1454
width: 724
height: 351
m_MinSize: {x: 101, y: 126}
m_MaxSize: {x: 4001, y: 4026}
m_ActualView: {fileID: 11}
m_MinSize: {x: 231, y: 276}
m_MaxSize: {x: 10001, y: 10026}
m_ActualView: {fileID: 10}
m_Panes:
- {fileID: 10}
- {fileID: 11}
- {fileID: 12}
- {fileID: 13}
m_Selected: 1
m_LastSelected: 0
m_Selected: 0
m_LastSelected: 1
--- !u!114 &10
MonoBehaviour:
m_ObjectHideFlags: 52
......@@ -1080,7 +1059,7 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 693
width: 1453
width: 723
height: 325
m_SerializedDataModeController:
m_DataMode: 0
......@@ -1106,7 +1085,7 @@ MonoBehaviour:
m_SkipHidden: 0
m_SearchArea: 1
m_Folders:
- Assets/App/Infrastructure
- Assets/AppUI/Scenes
m_Globs: []
m_ProductIds:
m_AnyWithAssetOrigin: 0
......@@ -1116,7 +1095,7 @@ MonoBehaviour:
m_ViewMode: 1
m_StartGridSize: 96
m_LastFolders:
- Assets/App/Infrastructure
- Assets/AppUI/Scenes
m_LastFoldersGridSize: 96
m_LastProjectPath: /home/p0wer/development/ssbookminigames/My project
m_LockTracker:
......@@ -1125,12 +1104,19 @@ MonoBehaviour:
m_FolderTreeState:
scrollPos: {x: 0, y: 79}
m_SelectedIDs:
- m_Data: 58294
- m_Data: 69734
m_LastClickedID:
m_Data: 58294
m_Data: 69734
m_ExpandedIDs:
- m_Data: 0
- m_Data: 56354
- m_Data: 56574
- m_Data: 59308
- m_Data: 59326
- m_Data: 59346
- m_Data: 59352
- m_Data: 72336
- m_Data: 72338
- m_Data: 72340
- m_Data: 1000000000
- m_Data: 2147483647
m_RenameOverlay:
......@@ -1165,7 +1151,7 @@ MonoBehaviour:
m_Data: 0
m_ExpandedIDs:
- m_Data: 0
- m_Data: 56354
- m_Data: 56574
- m_Data: 1000000000
- m_Data: 2147483647
m_RenameOverlay:
......@@ -1195,14 +1181,14 @@ MonoBehaviour:
m_ResourceFile:
m_ListAreaState:
m_SelectedInstanceIDs:
- m_Data: 62082
m_LastClickedInstanceID: 62082
- m_Data: 31262
m_LastClickedInstanceID: 31262
m_HadKeyboardFocusLastEvent: 1
m_ExpandedInstanceIDs:
- m_Data: 46526
- m_Data: 61214
- m_Data: 54106
- m_Data: 59494
- m_Data: 57932
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
......@@ -1381,12 +1367,12 @@ MonoBehaviour:
m_Children: []
m_Position:
serializedVersion: 2
x: 1454
x: 724
y: 0
width: 450
width: 224
height: 983
m_MinSize: {x: 276, y: 76}
m_MaxSize: {x: 4001, y: 4026}
m_MinSize: {x: 275, y: 50}
m_MaxSize: {x: 4000, y: 4000}
m_ActualView: {fileID: 15}
m_Panes:
- {fileID: 15}
......@@ -1413,9 +1399,9 @@ MonoBehaviour:
m_TextWithWhitespace: "Inspector\u200B"
m_Pos:
serializedVersion: 2
x: 1454
x: 724
y: 61
width: 449
width: 223
height: 957
m_SerializedDataModeController:
m_DataMode: 0
......
......@@ -641,23 +641,23 @@ MonoBehaviour:
serializedVersion: 2
x: 0
y: 21
width: 1097
width: 545
height: 585
m_Scale: {x: 0.24375, y: 0.24375}
m_Translation: {x: 548.5, y: 292.5}
m_Translation: {x: 272.5, y: 292.5}
m_MarginLeft: 0
m_MarginRight: 0
m_MarginTop: 0
m_MarginBottom: 0
m_LastShownAreaInsideMargins:
serializedVersion: 2
x: -2250.2563
x: -1117.9487
y: -1200
width: 4500.5127
width: 2235.8975
height: 2400
m_MinimalGUI: 1
m_defaultScale: 0.24375
m_LastWindowPixelSize: {x: 1097, y: 606}
m_LastWindowPixelSize: {x: 545, y: 606}
m_ClearInEditMode: 1
m_NoCameraWarning: 1
m_LowResolutionForAspectRatios: 01000000000000000000
......@@ -1380,9 +1380,9 @@ MonoBehaviour:
m_AudioPlay: 0
m_DebugDrawModesUseInteractiveLightBakingData: 0
m_Position:
m_Target: {x: 632.0484, y: 1166.8389, z: -2.3196595}
m_Target: {x: 0, y: 0, z: 0}
speed: 2
m_Value: {x: 632.0484, y: 1166.8389, z: -2.3196595}
m_Value: {x: 0, y: 0, z: 0}
m_RenderMode: 0
m_CameraMode:
drawMode: 0
......@@ -1432,9 +1432,9 @@ MonoBehaviour:
speed: 2
m_Value: {x: 0, y: 0, z: 0, w: 1}
m_Size:
m_Target: 311.54352
m_Target: 0.8660254
speed: 2
m_Value: 311.54352
m_Value: 0.8660254
m_Ortho:
m_Target: 1
speed: 2
......@@ -1541,7 +1541,7 @@ MonoBehaviour:
m_Data: 58130
m_ExpandedIDs:
- m_Data: 0
- m_Data: 56354
- m_Data: 56574
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
......@@ -1574,7 +1574,7 @@ MonoBehaviour:
m_Data: 0
m_ExpandedIDs:
- m_Data: 0
- m_Data: 56354
- m_Data: 56574
m_RenameOverlay:
m_UserAcceptedRename: 0
m_Name:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment