/// <summary> /// Update the current state of the button. /// </summary> public void UpdateState() { if (Controller == null) { return; } Button meButton = GetComponent <Button>(); if (meButton == null) { return; } RouterMode currentMode = Controller.Mode; bool active = false; for (int i = 0; i < EnabledModes.Length; ++i) { if (EnabledModes[i] == currentMode) { active = true; if (i < ModeSprites.Length && ModeSprites[i] != null) { meButton.image.sprite = ModeSprites[i]; } } } meButton.interactable = active; }
/// <summary> /// Respond to mode changes in the router and update the UI accordingly. /// </summary> /// <param name="mode">The new router mode to reflect.</param> public void OnControllerModeChange(RouterMode mode) { if (mode == RouterMode.Connected || mode == RouterMode.Connecting) { _connectButton.gameObject.SetActive(false); _disconnectButton.gameObject.SetActive(true); _hostEntry.enabled = false; _portEntry.enabled = false; // Reflect the current connection in the host/port items. if (Controller != null) { IPEndPoint connection = Controller.Connection; if (connection != null) { _hostEntry.text = connection.Address.ToString(); _portEntry.text = connection.Port.ToString(); } } } else { _connectButton.gameObject.SetActive(true); _disconnectButton.gameObject.SetActive(false); _hostEntry.enabled = true; _portEntry.enabled = true; } }
void Update() { if (_controller != null) { if (LastMode != _controller.Mode) { LastMode = _controller.Mode; ShowMode(); } } }
void Start() { LastMode = RouterMode.Idle; ShowMode(); }