LobbyHandler
unknown
csharp
a year ago
3.8 kB
5
Indexable
using UnityEngine; using UnityEngine.UI; using TMPro; using System.Collections; using Unity.Netcode; public class LobbyRoomUIManager : NetworkBehaviour { //Deck Select Menu public bool IsDeckMenuDisplayed { get; private set; } = false; public float TimePassedDisplayed { get; private set; } [SerializeField] Button _deckMenuButton; [SerializeField] Button _settingsButton; [SerializeField] Animator _deckMenuAnimator; [SerializeField] TextMeshProUGUI _lobbyNameText; [SerializeField] TextMeshProUGUI _lobbyRoomCode; [SerializeField] TextMeshProUGUI _relayJoinCode; [SerializeField] TextMeshProUGUI _hostName; [SerializeField] TextMeshProUGUI _guestName; [SerializeField] Image _hostImage; [SerializeField] Image _guestImage; [SerializeField] public DeckSO SelectedDeck { get; private set; } [SerializeField] public DeckSO GuestSelectedDeck { get; private set; } [SerializeField] TextMeshProUGUI _selectedDeckName; [SerializeField] Image _selectedDeckImage; void Start() { LoadAllButtonListeners(); LoadComponents(); StartCoroutine(SetLobbyRoomCodeDisplay()); } void Update() { if (IsDeckMenuDisplayed) { if (Input.GetKeyDown(KeyCode.Escape)) HideDeckSelectMenu(); TimePassedDisplayed += Time.deltaTime; } } void OnApplicationQuit() { LobbyHandler.Instance.DeleteLobby(LobbyHandler.Instance.LobbyID); } void LoadComponents() { if (IsHost) _hostName.text = SecurePlayerPrefs.GetString("_displayName"); if (IsClient) _guestName.text = SecurePlayerPrefs.GetString("_displayName"); } void LoadAllButtonListeners() { _deckMenuButton.onClick.AddListener(ShowDeckSelectMenu); _settingsButton.onClick.AddListener(ReturnToHomeMenu); } public void ShowDeckSelectMenu() { IsDeckMenuDisplayed = true; _deckMenuAnimator.Play("Show"); } public void HideDeckSelectMenu() { TimePassedDisplayed = 0; IsDeckMenuDisplayed = false; _deckMenuAnimator.Play("Hide"); } public void SelectDeck(DeckSO selectedDeck) { StartCoroutine(PerformDeckSelect(selectedDeck)); } public IEnumerator PerformDeckSelect(DeckSO selectedDeck) { HideDeckSelectMenu(); if (selectedDeck == SelectedDeck) yield return null; SelectedDeck = selectedDeck; yield return new WaitForSeconds(0.1f); ChangeLeaderImageClientRpc(); _selectedDeckName.text = SelectedDeck.NombreDelMazo; _selectedDeckImage.sprite = SelectedDeck.Lider.Ilustracion; } [ClientRpc] void ChangeLeaderImageClientRpc() { Debug.Log("Client Rpc is being called"); ChangeLeaderImageServerRpc(); } [ServerRpc] void ChangeLeaderImageServerRpc() { if (NetworkManager.Singleton.IsHost) _hostImage.sprite = SelectedDeck.Lider.Ilustracion; else _guestImage.sprite = SelectedDeck.Lider.Ilustracion; } IEnumerator SetLobbyRoomCodeDisplay() { yield return new WaitForSeconds(0.3f); _lobbyRoomCode.text = LobbyHandler.Instance.RoomCode; _lobbyNameText.text = LobbyHandler.Instance.LobbyName; _relayJoinCode.text = LobbyHandler.Instance.RelayCode; } void ReturnToHomeMenu() { LobbyHandler.Instance.DeleteLobby(LobbyHandler.Instance.LobbyID); SceneTransitionManager.Instance.LoadSceneTransition(SceneTransitionManager.Instance.Wipe, "MainMenu"); } }
Editor is loading...
Leave a Comment