Add party to lobby menu

This commit is contained in:
2024-09-09 20:21:03 +02:00
parent 8529ebb4a9
commit 9250b7b5dd
13 changed files with 4207 additions and 1078 deletions

View File

@@ -39,6 +39,16 @@ public class LobbyMenuUI : MonoBehaviour
[SerializeField]
private Button hostButton;
[Title("Connected")]
[SerializeField]
private GameObject connected;
[SerializeField]
private PlayerItemUI[] playerItems;
[SerializeField]
private Button leaveButton;
private bool isConnected => gameManager.IsMultiplayer;
private void Start()
@@ -50,6 +60,7 @@ public class LobbyMenuUI : MonoBehaviour
joinButton.onClick.AddListener(() => JoinClicked());
hostButton.onClick.AddListener(() => HostClicked());
leaveButton.onClick.AddListener(() => LeaveClicked());
gameManager.OnConnected.AddListener(() => UpdateUI());
gameManager.OnDisconnected.AddListener(() => UpdateUI());
@@ -59,9 +70,9 @@ public class LobbyMenuUI : MonoBehaviour
private void UpdateUI()
{
joinOrHost.SetActive(!isConnected);
connected.SetActive(isConnected);
joinButton.interactable = true;
hostButton.interactable = true;
Debug.Log(isConnected);
}
private void JoinClicked()
@@ -76,6 +87,10 @@ public class LobbyMenuUI : MonoBehaviour
gameManager.HostGame();
joinButton.interactable = false;
hostButton.interactable = false;
}
private void LeaveClicked()
{
gameManager.LeaveGame();
}
}

View File

@@ -0,0 +1,50 @@
using Sirenix.OdinInspector;
using System.Collections;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
public class PlayerItemUI : MonoBehaviour
{
[SerializeField]
private TextMeshProUGUI nameText;
[SerializeField]
private Image playerImage;
[SerializeField]
private GameObject emptyGroup;
[SerializeField]
private GameObject activeGroup;
[ReadOnly]
[SerializeField]
private PlayerInfo? playerInfo;
bool isEmpty => playerInfo == null;
private void Start()
{
UpdateUI();
}
public void Setup(PlayerInfo? playerInfo)
{
this.playerInfo = playerInfo;
UpdateUI();
}
private void UpdateUI()
{
emptyGroup.SetActive(isEmpty);
activeGroup.SetActive(!isEmpty);
if (!isEmpty)
{
nameText.text = playerInfo?.Name;
playerImage.sprite = playerInfo?.Image;
}
}
}

View File

@@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: 1d0332147f497ef43b76bf6555e0421e
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant: