コード例 #1
0
ファイル: InvertSelection.cs プロジェクト: lhide/Portfolio
    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");
                    }
                }
            }
        }
    }
コード例 #2
0
    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;
        }
    }
コード例 #3
0
    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>();
    }
コード例 #4
0
    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;
    }
コード例 #5
0
    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();
        }
    }
コード例 #6
0
ファイル: InvertSelection.cs プロジェクト: lhide/Portfolio
    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;
    }
コード例 #7
0
ファイル: InvertSelection.cs プロジェクト: lhide/Portfolio
    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>();
                    }
                }
            }
        }
    }
コード例 #8
0
        // ブロードキャスト受信時に呼ばれる関数
        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());
        }
コード例 #9
0
        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();
        }
コード例 #10
0
    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);
    }
コード例 #11
0
        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);
        }
コード例 #12
0
        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);
                }
            }
        }
コード例 #13
0
        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;
            }
        }
コード例 #14
0
 // this is invoked by the UnityEngine
 public static void UNetStaticUpdate()
 {
     NetworkServer.Update();
     NetworkClient.UpdateClients();
     NetworkManager.UpdateScene();
 }
コード例 #15
0
 void Awake()
 {
     manager = GetComponent <NetworkManager>();
 }
コード例 #16
0
 public void OnDestroy()
 {
     NetworkManager.UnRegisterStartPosition(transform);
 }
コード例 #17
0
 public void Awake()
 {
     NetworkManager.RegisterStartPosition(transform);
 }