public void MakeRoom() // 방만들기 버튼 UI를 누를 경우 { //UnityEngine.Debug.Log("MakeRoom"); // Client로서 서버에 잘 연결돼있거나(앞의 두 조건: 2중 체크), 이미 본인이 서버를 호스팅하고 있으면, if (NetworkClient.active || NetworkClient.isConnected || NetworkServer.active) { return; // 아무것도 안함. } CreatePortMapping.Create(); //_voiceManager.OnParticipantAddedEvent += voiceManager_OnParticipantAddedEvent; // 참가자 추가 event 구독 //_voiceManager.OnTextMessageLogReceivedEvent += voiceManager_OnTextMessageLogReceivedEvent; // message 수신 event 구독 //SetPlayerName = GameObject.Find("InputName").GetComponent<InputField>().text; //LoginToVivoxService(SetPlayerName); // vivox service에 login manager.networkAddress = new WebClient().DownloadString("https://api.ipify.org"); //this.gameObject.GetComponent<TelepathyTransport>().port = manager.StartHost(); // 위와 같은 상황이 아니면, 서버를 호스팅. // 호스팅: 본인의 IP로 서버를 만들고, Client로서 이 서버에 참여하게 됨. if (NetworkClient.isConnected && !ClientScene.ready) // Client로서 서버에 연결은 됐는데, Client에 게임을 로드할 준비까지는 안됐었다면, { ClientScene.Ready(NetworkClient.connection); // 해당 준비를 마치고, if (ClientScene.localPlayer == null) // 플레이어로 서버에 등록이 안됐다면, { ClientScene.AddPlayer(NetworkClient.connection); // 서버에 플레이어로 등록한다. } } }
IEnumerator CreateMappingInvoke() { while (true) { yield return(new WaitForSeconds(5)); CreatePortMapping.Create(); if (!(SceneManager.GetActiveScene().name == "Lobby")) { break; } } }