您最多选择25个主题
主题必须以中文或者字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符
48 行
1.3 KiB
48 行
1.3 KiB
using TMPro;
|
|
using UnityEngine;
|
|
using UnityEngine.Events;
|
|
|
|
namespace LobbyRelaySample.UI
|
|
{
|
|
/// <summary>
|
|
/// Controls an entry in the join menu's list of lobbies, acting as a clickable button as well as displaying info about the lobby.
|
|
/// </summary>
|
|
[RequireComponent(typeof(LocalLobbyObserver))]
|
|
public class LobbyButtonUI : MonoBehaviour
|
|
{
|
|
[SerializeField]
|
|
TMP_Text lobbyNameText;
|
|
[SerializeField]
|
|
TMP_Text lobbyCountText;
|
|
|
|
/// <summary>
|
|
/// Subscribed to on instantiation to pass our lobby data back
|
|
/// </summary>
|
|
public UnityEvent<LocalLobby> onLobbyPressed;
|
|
LocalLobbyObserver m_DataObserver;
|
|
|
|
void Awake()
|
|
{
|
|
m_DataObserver = GetComponent<LocalLobbyObserver>();
|
|
}
|
|
|
|
/// <summary>
|
|
/// UI CallBack
|
|
/// </summary>
|
|
public void OnLobbyClicked()
|
|
{
|
|
onLobbyPressed?.Invoke(m_DataObserver.observed);
|
|
}
|
|
|
|
public void UpdateLobby(LocalLobby lobby)
|
|
{
|
|
m_DataObserver.observed.CopyObserved(lobby);
|
|
}
|
|
|
|
public void OnLobbyUpdated(LocalLobby data)
|
|
{
|
|
lobbyNameText.SetText(data.LobbyName);
|
|
lobbyCountText.SetText($"{data.PlayerCount}/{data.MaxPlayerCount}");
|
|
}
|
|
}
|
|
}
|