using System; using TMPro; using UnityEngine; using UnityEngine.UI; using Fusion; public class SessionInfoUIListItem : MonoBehaviour { public TextMeshProUGUI sessionName; public Button joinButton; private SessionInfo sessionInfo; public event Action OnJoinSession; public void SetSessionInfo(SessionInfo sessionInfo) { if (sessionName == null) { Debug.LogError($"[SessionInfoUIListItem] sessionName is null on '{name}'. Please assign a TextMeshProUGUI."); return; } if (joinButton == null) { Debug.LogError($"[SessionInfoUIListItem] joinButton is null on '{name}'. Please assign a Button."); return; } this.sessionInfo = sessionInfo; sessionName.text = sessionInfo.Name; joinButton.interactable = sessionInfo.PlayerCount < sessionInfo.MaxPlayers; joinButton.onClick.RemoveAllListeners(); joinButton.onClick.AddListener(OnClick); } private void OnClick() { OnJoinSession?.Invoke(sessionInfo); } }