using System.Text; using TMPro; namespace LobbyRelaySample.UI { /// /// Controls a simple throbber that is displayed when the lobby list is being refreshed. /// public class SpinnerUI : ObserverPanel { public TMP_Text errorText; public UIPanelBase spinnerImage; public UIPanelBase noServerText; public UIPanelBase errorTextVisibility; public override void ObservedUpdated(LobbyServiceData observed) { if (observed.State == LobbyQueryState.Fetching) { Show(); spinnerImage.Show(); noServerText.Hide(); errorTextVisibility.Hide(); } else if (observed.State == LobbyQueryState.Error) { spinnerImage.Hide(); errorTextVisibility.Show(); var errorString = new StringBuilder(); errorString.Append("Error"); errorString.Append(": "); if (observed.lastErrorCode > 0) { errorString.Append(observed.lastErrorCode); errorString.Append(", "); } errorString.Append("Check Unity Console Log for Details."); errorText.SetText(errorString.ToString()); } else if (observed.State == LobbyQueryState.Fetched) { if (observed.CurrentLobbies.Count < 1) { noServerText.Show(); } else { noServerText.Hide(); } spinnerImage.Hide(); } } } }