// LOGIN MASK ////////////////////////////////////////////////////////////// void UpdateLoginMask() { // only update if visible if (!loginPanel.activeSelf) { return; } // status loginStatus.text = manager.IsConnecting() ? "Connecting..." : ""; // button login btnLogin.interactable = !manager.IsConnecting(); btnLogin.onClick.SetListener(() => { manager.StartClient(); }); // button host btnHost.interactable = !manager.IsConnecting(); btnHost.onClick.SetListener(() => { manager.StartHost(); }); // button dedicated btnDedicated.interactable = !manager.IsConnecting(); btnDedicated.onClick.SetListener(() => { manager.StartServer(); }); // inputs manager.id = inputName.text; manager.pw = inputPass.text; }
void Update() { if (manager == null) { manager = NetworkManager.singleton as NetworkManagerMMO; } // only show while offline // AND while in handshake since we don't want to show nothing while // trying to login and waiting for the server's response if (manager.state == NetworkState.Offline || manager.state == NetworkState.Handshake) { panel.SetActive(true); // status if (manager.IsConnecting()) { statusText.text = "Connecting..."; } else if (manager.state == NetworkState.Handshake) { statusText.text = "Handshake..."; } else { statusText.text = ""; } // buttons. interactable while network is not active // (using IsConnecting is slightly delayed and would allow multiple clicks) registerButton.interactable = !manager.isNetworkActive; registerButton.onClick.SetListener(() => { uiPopup.Show(registerMessage); }); loginButton.interactable = !manager.isNetworkActive && manager.IsAllowedAccountName(accountInput.text); loginButton.onClick.SetListener(() => { manager.StartClient(); }); hostButton.interactable = Application.platform != RuntimePlatform.WebGLPlayer && !manager.isNetworkActive && manager.IsAllowedAccountName(accountInput.text); hostButton.onClick.SetListener(() => { manager.StartHost(); }); cancelButton.gameObject.SetActive(manager.IsConnecting()); cancelButton.onClick.SetListener(() => { manager.StopClient(); }); dedicatedButton.interactable = Application.platform != RuntimePlatform.WebGLPlayer && !manager.isNetworkActive; dedicatedButton.onClick.SetListener(() => { manager.StartServer(); }); quitButton.onClick.SetListener(() => { NetworkManagerMMO.Quit(); }); // inputs manager.loginAccount = accountInput.text; manager.loginPassword = passwordInput.text; // copy servers to dropdown; copy selected one to networkmanager ip/port. serverDropdown.interactable = !manager.isNetworkActive; serverDropdown.options = manager.serverList.Select( sv => new Dropdown.OptionData(sv.name) ).ToList(); manager.networkAddress = manager.serverList[serverDropdown.value].ip; } else { panel.SetActive(false); } }
void Update() { // only show while offline or trying to connect if (!manager.IsClientConnected()) { panel.SetActive(true); // status statusText.text = manager.IsConnecting() ? "Connecting..." : ""; // buttons. interactable while network is not active // (using IsConnecting is slightly delayed and would allow multiple clicks) registerButton.onClick.SetListener(() => { uiPopup.Show(registerMessage); }); loginButton.interactable = !manager.isNetworkActive && manager.IsAllowedAccountName(accountInput.text); loginButton.onClick.SetListener(() => { manager.StartClient(); }); hostButton.interactable = !manager.isNetworkActive && manager.IsAllowedAccountName(accountInput.text); hostButton.onClick.SetListener(() => { manager.StartHost(); }); cancelButton.gameObject.SetActive(manager.IsConnecting()); cancelButton.onClick.SetListener(() => { manager.StopClient(); }); dedicatedButton.interactable = !manager.isNetworkActive; dedicatedButton.onClick.SetListener(() => { manager.StartServer(); }); quitButton.onClick.SetListener(() => { NetworkManagerMMO.Quit(); }); // inputs manager.loginAccount = accountInput.text; manager.loginPassword = passwordInput.text; // copy servers to dropdown; copy selected one to networkmanager ip/port. serverDropdown.interactable = !manager.isNetworkActive; serverDropdown.options = manager.serverList.Select( sv => new Dropdown.OptionData(sv.name) ).ToList(); manager.networkAddress = manager.serverList[serverDropdown.value].ip; // addon system hooks Utils.InvokeMany(typeof(UILogin), this, "Update_"); } else { panel.SetActive(false); } }
void Update() { // only update while visible if (!panel.activeSelf) { return; } // status statusText.text = manager.IsConnecting() ? "Connecting..." : ""; // buttons registerButton.onClick.SetListener(() => { FindObjectOfType <UIPopup>().Show(registerMessage); }); loginButton.interactable = !manager.IsConnecting(); loginButton.onClick.SetListener(() => { manager.StartClient(); }); hostButton.interactable = !manager.IsConnecting(); hostButton.onClick.SetListener(() => { manager.StartHost(); }); cancelButton.gameObject.SetActive(manager.IsConnecting()); cancelButton.onClick.SetListener(() => { manager.StopClient(); }); dedicatedButton.onClick.SetListener(() => { manager.StartServer(); }); dedicatedButton.interactable = !manager.IsConnecting(); quitButton.onClick.SetListener(() => { Application.Quit(); }); // inputs manager.id = accountInput.text; manager.pw = passwordInput.text; // copy servers to dropdown; copy selected one to networkmanager ip/port. serverDropdown.interactable = !manager.IsConnecting(); serverDropdown.options = manager.serverList.Select( sv => new Dropdown.OptionData(sv.name) ).ToList(); manager.networkAddress = manager.serverList[serverDropdown.value].ip; }
void Update() { // only update while visible if (!panel.activeSelf) { return; } // status status.text = manager.IsConnecting() ? "Connecting..." : ""; // button states btnLogin.interactable = !manager.IsConnecting(); btnHost.interactable = !manager.IsConnecting(); btnCancel.gameObject.SetActive(manager.IsConnecting()); btnDedicated.interactable = !manager.IsConnecting(); // inputs manager.id = inputName.text; manager.pw = inputPass.text; // copy servers to dropdown; copy current one to networkmanager ip/port. dropdownServer.interactable = !manager.IsConnecting(); dropdownServer.options.Clear(); foreach (var server in manager.serverList) { dropdownServer.options.Add(new Dropdown.OptionData(server.name)); } int idx = dropdownServer.value; if (idx != -1) { // we also have to refresh the current text, otherwise it's still // 'Option A' currentServer.text = dropdownServer.options[idx].text; // set selected ip + port in networkmanager manager.networkAddress = manager.serverList[idx].ip; manager.networkPort = manager.serverList[idx].port; } }