static void GatherObjects() { // Find all assets labelled with 'architecture' : string[] guids1 = AssetDatabase.FindAssets("t:GameObject", null); Mirror.NetworkManager manager = FindObjectOfType <Mirror.NetworkManager>(); if (manager == null) { Debug.Log("No manager!"); return; } List <GameObject> objectsToAdd = new List <GameObject>(); foreach (string guid1 in guids1) { string url = AssetDatabase.GUIDToAssetPath(guid1); Type type = AssetDatabase.GetMainAssetTypeAtPath(url); if (type == typeof(GameObject)) { GameObject g = AssetDatabase.LoadAssetAtPath(url, type) as GameObject; if (g.GetComponent <Mirror.NetworkIdentity>()) { if (!manager.spawnPrefabs.Contains(g)) { Debug.Log("Assigning " + g.name); manager.spawnPrefabs.Add(g); } else { Debug.Log(g.name + " already assigned"); } } } } }
private IEnumerator waitForPopupResponse() { TTMessagePopup.OnYesButtonPressed += yes; TTMessagePopup.OnNoButtonPressed += no; bool hasReponded = false; yield return(new WaitWhile(() => !hasReponded)); TTMessagePopup.OnYesButtonPressed -= yes; TTMessagePopup.OnNoButtonPressed -= no; void yes() { disableNavButtons(); Mirror.NetworkManager manager = Mirror.NetworkManager.singleton; switch (manager.mode) { case Mirror.NetworkManagerMode.ClientOnly: manager.StopClient(); break; case Mirror.NetworkManagerMode.Host: manager.StopHost(); break; } hasReponded = true; } void no() { hasReponded = true; } }
void Awake() { This = this; TeamOneColor = new Color(1, 0, 0, 1); TeamTwoColor = new Color(0, 0, 1, 1); NM = this.GetComponent <Mirror.NetworkManager>(); TT = this.GetComponent <Mirror.TelepathyTransport>(); ND = this.GetComponent <Mirror.Discovery.NetworkDiscovery>(); }
private void Start() { _manager = Mirror.NetworkManager.singleton; _image = GetComponent <Image>(); _image.sprite = _unavailable; _text.StringReference = _chooseCharacterString; _isButtonInteractable = false; StartCoroutine(waitForCharacterSelect()); GetComponent <Button>().onClick.AddListener(onReadyPressed); CharacterSelect.OnSelectedCharacterChanged += onSelectedCharacterChanged; TTSettingsManager.onUpdateCall += updateContent; }
private void Update() { if (AllPlayersReady()) { Set_Port_and_IP(this.lobbyID); SceneManager.LoadScene(1); //Mirror.NetworkClient.Connect(NetworkManagerScript.networkAddress); GameStateManager.maxPlayers = curPlayers.Length; Mirror.NetworkManager networkObject = GameObject.FindGameObjectWithTag("NetworkObject").GetComponent <Mirror.NetworkManager>(); networkObject.StartClient(); } }
static void OrderAlpha() { // Find all assets labelled with 'architecture' : string[] guids1 = AssetDatabase.FindAssets("t:GameObject", null); Mirror.NetworkManager manager = FindObjectOfType <Mirror.NetworkManager>(); if (manager == null) { Debug.Log("No manager!"); return; } List <GameObject> objectsToAdd = manager.spawnPrefabs; objectsToAdd = objectsToAdd.OrderBy(x => x.name.ToLower()).ToList <GameObject>(); manager.spawnPrefabs = objectsToAdd; }
static void AssignNetworkIdentities() { // Find all assets labelled with 'architecture' : string[] guids1 = AssetDatabase.FindAssets("t:GameObject", null); Mirror.NetworkManager manager = FindObjectOfType <Mirror.NetworkManager>(); if (manager == null) { Debug.Log("No manager!"); return; } foreach (string guid1 in guids1) { string url = AssetDatabase.GUIDToAssetPath(guid1); Type type = AssetDatabase.GetMainAssetTypeAtPath(url); if (type == typeof(GameObject)) { GameObject g = AssetDatabase.LoadAssetAtPath(url, type) as GameObject; Component[] components = g.GetComponents <Component>(); bool needsToAddNetID = false; List <Component> componentsToDestroy = new List <Component>(); foreach (Component c in components) { if (c == null) { componentsToDestroy.Add(c); needsToAddNetID = true; Debug.Log(g.name); } } for (int i = 0; i < componentsToDestroy.Count; i++) { DestroyImmediate(componentsToDestroy[i], true); } if (g.GetComponent <Mirror.NetworkIdentity>() == null) { if (needsToAddNetID) { g.AddComponent <Mirror.NetworkIdentity>(); } } } } }
// ブロードキャスト受信時に呼ばれる関数 public override void OnReceivedBroadcast(string fromAddress, string data) { Mirror.NetworkManager manager = Mirror.NetworkManager.singleton; // 既にサーバーまたはクライアントとしてネットワーク接続済みの場合は何もしない if (manager.isNetworkActive) { return; } // ブロードキャストの送信元IPアドレスを接続先としてセット manager.networkAddress = fromAddress.Replace("::ffff:", ""); // クライアントとして起動する manager.StartClient(); // ブロードキャストの受信をやめる StartCoroutine(StopBroadcastCoroutine()); }
void Update() { //if (!showGUI) // return; //GUILayout.BeginArea(new Rect(10 + offsetX, 40 + offsetY, 215, 9999)); manager = GetComponent <NetworkManager>(); if (!NetworkClient.isConnected && !NetworkServer.active) { if (!NetworkClient.active) { // LAN Host if (Application.platform != RuntimePlatform.WebGLPlayer) { // if (GUILayout.Button("LAN Host")) // { // manager.StartHost(); // } if (hostButtonClicked) { manager.StartHost(); networkMenu.SetActive(false); networkMenuActive = false; } } // LAN Client + IP //GUILayout.BeginHorizontal(); if (clientButtonClicked) { manager.StartClient(); networkMenu.SetActive(false); networkMenuActive = false; } //manager.networkAddress = GUILayout.TextField(manager.networkAddress); //GUILayout.EndHorizontal(); manager.networkAddress = "localhost"; // LAN Server Only if (Application.platform == RuntimePlatform.WebGLPlayer) { // cant be a server in webgl build Debug.Log("WebGL cannot be server"); } else { if (serverButtonClicked) { manager.StartServer(); networkMenu.SetActive(false); networkMenuActive = false; } } } else { // Connecting //GUILayout.Label("Connecting to " + manager.networkAddress + ".."); //if (GUILayout.Button("Cancel Connection Attempt")) //{ // manager.StopClient(); //} } } else { // server / client status message //if (NetworkServer.active) //{ // GUILayout.Label("Server: active. Transport: " + Transport.activeTransport); //} //if (NetworkClient.isConnected) //{ // GUILayout.Label("Client: address=" + manager.networkAddress); //} } // client ready // if (NetworkClient.isConnected && !ClientScene.ready) // { // if (GUILayout.Button("Client Ready")) // { // ClientScene.Ready(NetworkClient.connection); // if (ClientScene.localPlayer == null) // { // ClientScene.AddPlayer(); // } // } // } // stop if (NetworkServer.active || NetworkClient.isConnected) { // Implement this if (quitButtonClicked && !networkMenuActive) { networkMenu.SetActive(true); networkMenuActive = true; quitButtonClicked = hostButtonClicked = clientButtonClicked = serverButtonClicked = false; manager.StopHost(); } } //GUILayout.EndArea(); }
public void DisplayPopup(PopupTitle pTitle, PopupMessage pMessage, PopupResponse pMessageResponse) { Mirror.NetworkManager manager = Mirror.NetworkManager.singleton; _secondary.gameObject.SetActive(false); switch (pTitle) { case PopupTitle.Warning: //Warning _title.StringReference = _tWarning; break; case PopupTitle.Error: //Title _title.StringReference = _tError; break; case PopupTitle.Notification: //Title _title.StringReference = _tNotification; break; } switch (pMessage) { case PopupMessage.Code: //Message _message.StringReference = _mCode; //Secondary _secondary.gameObject.SetActive(true); _secondary.StringReference = _sCodeExample; break; case PopupMessage.LeaveLobby: //Message _message.StringReference = _mLeaveLobby; //Secondary _secondary.gameObject.SetActive(true); if (manager.mode == Mirror.NetworkManagerMode.Host) { _secondary.StringReference = _sLeaveLobbyHost; } else if (manager.mode == Mirror.NetworkManagerMode.ClientOnly) { _secondary.StringReference = _sLeaveLobbyClient; } break; case PopupMessage.Reconnect: //Message _message.StringReference = _mCode; break; case PopupMessage.Kick: //Message if (manager.mode == Mirror.NetworkManagerMode.Host) { _message.StringReference = _mKickHost; } else { _message.StringReference = _mKickClient; } break; case PopupMessage.StartAlone: //Message _message.StringReference = _mStartAlone; break; } switch (pMessageResponse) { case PopupResponse.YesNo: _yesButton.gameObject.SetActive(true); _noButton.gameObject.SetActive(true); _okButton.gameObject.SetActive(false); break; case PopupResponse.Ok: _yesButton.gameObject.SetActive(false); _noButton.gameObject.SetActive(false); _okButton.gameObject.SetActive(true); break; } transform.GetChild(0).gameObject.SetActive(true); }
public static Mirror.NetworkManager ConvertNetworkManager(UnityEngine.Networking.NetworkManager unetNM, UnityEngine.Networking.NetworkManagerHUD unetHUD) { if (unetNM == null) { return(null); } var go = unetNM.gameObject; Mirror.NetworkManager mirrorNM = null; /// If this has a UNET NM on it, replace it with Mirror, and copy the playerprefab over if (unetNM) { var transport = go.GetComponent <Transport>(); if (!transport) { transport = go.AddComponent <TelepathyTransport>(); } mirrorNM = go.GetComponent <Mirror.NetworkManager>(); if (mirrorNM == null) { mirrorNM = go.AddComponent <Mirror.NetworkManager>(); NetworkManager.singleton = mirrorNM; } var mirrorHUD = go.GetComponent <Mirror.NetworkManagerHUD>(); if (mirrorHUD == null) { mirrorHUD = go.AddComponent <Mirror.NetworkManagerHUD>(); } #if MIRROR_1726_OR_NEWER /// Initialize some stuff Mirror doesn't on its own (at least when this was written) Transport.activeTransport = transport; Transport.activeTransport.OnServerDisconnected = new UnityEventInt(); Transport.activeTransport.OnServerConnected = new UnityEventInt(); Transport.activeTransport.OnServerDataReceived = new UnityEventIntByteArray(); Transport.activeTransport.OnServerError = new UnityEventIntException(); Transport.activeTransport.OnClientConnected = new UnityEngine.Events.UnityEvent(); Transport.activeTransport.OnClientDataReceived = new UnityEventByteArray(); Transport.activeTransport.OnClientError = new UnityEventException(); Transport.activeTransport.OnClientDisconnected = new UnityEngine.Events.UnityEvent(); #else /// Initialize some stuff Mirror doesn't on its own (Fix this Mirror team) NetworkManager.singleton.transport = transport; NetworkManager.singleton.transport.OnServerDisconnected = new UnityEventInt(); NetworkManager.singleton.transport.OnServerConnected = new UnityEventInt(); NetworkManager.singleton.transport.OnServerDataReceived = new UnityEventIntByteArray(); NetworkManager.singleton.transport.OnServerError = new UnityEventIntException(); NetworkManager.singleton.transport.OnClientConnected = new UnityEngine.Events.UnityEvent(); NetworkManager.singleton.transport.OnClientDataReceived = new UnityEventByteArray(); NetworkManager.singleton.transport.OnClientError = new UnityEventException(); NetworkManager.singleton.transport.OnClientDisconnected = new UnityEngine.Events.UnityEvent(); #endif // End Mirror_1726 /// Destroy the Unet HUD if (unetHUD) { Object.DestroyImmediate(unetHUD, true); } /// Copy values from UNET NM to Mirror NM if (unetNM) { CopyPlayerPrefab(unetNM, mirrorNM); CopySpawnablePrefabs(unetNM, mirrorNM); Object.DestroyImmediate(unetNM, true); } } Object.DestroyImmediate(unetHUD, true); Object.DestroyImmediate(unetNM, true); UnityEditor.SceneManagement.EditorSceneManager.SaveScene(SceneManager.GetActiveScene()); return(mirrorNM); }
public static void CopySpawnablePrefabs(UnityEngine.Networking.NetworkManager src, Mirror.NetworkManager targ) { foreach (var obj in src.spawnPrefabs) { GiveMirrorNetworkIdentity(obj); if (!targ.spawnPrefabs.Contains(obj)) { targ.spawnPrefabs.Add(obj); } } }
public static void CopyPlayerPrefab(UnityEngine.Networking.NetworkManager src, Mirror.NetworkManager targ) { /// Make sure the player object is using mirror components if (src.playerPrefab) { GiveMirrorNetworkIdentity(src.playerPrefab); targ.autoCreatePlayer = src.autoCreatePlayer; targ.playerPrefab = src.playerPrefab; var ppNI = targ.playerPrefab.GetComponent <NetworkIdentity>(); ppNI.localPlayerAuthority = true; } }
// this is invoked by the UnityEngine public static void UNetStaticUpdate() { NetworkServer.Update(); NetworkClient.UpdateClients(); NetworkManager.UpdateScene(); }
void Awake() { manager = GetComponent <NetworkManager>(); }
public void OnDestroy() { NetworkManager.UnRegisterStartPosition(transform); }
public void Awake() { NetworkManager.RegisterStartPosition(transform); }