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 == LobbyServiceState.Fetching) { Show(); spinnerImage.Show(); noServerText.Hide(); errorTextVisibility.Hide(); } else if (observed.State == LobbyServiceState.Error) { spinnerImage.Hide(); errorTextVisibility.Show(); var errorString = new StringBuilder(); errorString.Append("Error"); var codeString = ": " + observed.lastErrorCode; if (observed.lastErrorCode < 1) codeString = "."; errorString.Append(codeString); errorText.SetText(errorString.ToString()); } else if (observed.State == LobbyServiceState.Fetched) { if (observed.CurrentLobbies.Count < 1) { noServerText.Show(); } else { noServerText.Hide(); } spinnerImage.Hide(); } } } }