Пример #1
0
        private void TryConnectLoop(object state)
        {
            NetworkState = NetworkStates.Connecting;
            Thread.Sleep(_settings.TimeToWaitForInitialConnect_ms);
            while (NetworkState == NetworkStates.Connecting)
            {
                try {
                    var endPoint = _settings.Server.GetEndPoint();
                    _socket = new Socket(endPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
                    _socket.Connect(endPoint);
                    if (_socket.Connected && NetworkState == NetworkStates.Connecting)
                    {
                        NetworkState = NetworkStates.Connected;
                        Log.Info($"Connected to FadeCandy Server.");
                    }
                    else
                    {
                        CloseSocket();
                    }
                }
                catch (Exception e) {
                    Log.Error($"Caught exception while trying to connect to FadeCandy server: {e}");
                }

                if (NetworkState == NetworkStates.Connecting)
                {
                    Thread.Sleep(_settings.ReconnectInterval_ms);
                }
            }
        }
        public void SendData(string data, TransmitedDataType dataType)
        {
            if (connected)
            {
                try
                {
                    if (dataType != TransmitedDataType.Unknown)
                    {
                        data = "C" + (int)dataType + data;
                    }

                    if (data.Length < BufferSize)
                    {
                        data = data.PadRight(BufferSize);
                    }
                    ASCIIEncoding asen = new ASCIIEncoding();
                    client.Send(asen.GetBytes(data));
                    networkError = null;
                }
                catch (Exception e)
                {
                    networkError = e;
                    State        = NetworkStates.NetworkError;
                }
            }
        }
        public void SendData(string data, TransmitedDataType dataType)
        {
            if (IsConnected)
            {
                try
                {
                    if (dataType != TransmitedDataType.Unknown)
                    {
                        data = "C" + (int)dataType + data;
                    }
                    if (data.Length < BufferSize)
                    {
                        data = data.PadRight(BufferSize);
                    }
                    ASCIIEncoding asen = new ASCIIEncoding();
                    byte[]        ba   = asen.GetBytes(data);
                    Console.WriteLine("Transmitting.....");

                    connectionStream.Write(ba, 0, ba.Length);
                    connectionStream.EndWrite(null);
                    networkError = null;
                }
                catch (Exception e)
                {
                    networkError = e;
                    State        = NetworkStates.NetworkError;
                }
            }
        }
Пример #4
0
        public override void Connect(string ip, int port)
        {
            NetworkStates state = State;

            if (state == NetworkStates.Connecting || state == NetworkStates.Normal || state == NetworkStates.Disconnecting)
            {
                netHandler.OnOperationLog(NetworkOperations.Working, $"the network is working.({ip}:{port})");
                return;
            }

            try
            {
                IPAddress            ipAddress         = IPAddress.Parse(ip);
                SocketAsyncEventArgs connectAsyncEvent = new SocketAsyncEventArgs()
                {
                    RemoteEndPoint = new IPEndPoint(ipAddress, port),
                    UserToken      = netSocket,
                };
                connectAsyncEvent.Completed += OnHandleSocketEvent;

                netSocket.ConnectAsync(connectAsyncEvent);
                State = NetworkStates.Connecting;

                netHandler.OnOperationLog(NetworkOperations.Connecting, $"Start connect to the server({ip}:{port})");
            }
            catch
            {
                State = NetworkStates.ConnectedFailed;
                netHandler.OnOperationLog(NetworkOperations.ConnectedFailed, $"connected failed({ip}:{port})");
            }
        }
Пример #5
0
 internal void NotifyStatusChanged(NetworkStates state)
 {
     if (this.StatusChanged != null)
     {
         this.StatusChanged(this, state);
     }
 }
Пример #6
0
        private void DoDisconnect()
        {
            if (sendAsyncEvent != null)
            {
                sendAsyncEvent.Completed -= OnHandleSocketEvent;
                sendAsyncEvent            = null;
            }
            if (receiveAsyncEvent != null)
            {
                receiveAsyncEvent.Completed -= OnHandleSocketEvent;
                receiveAsyncEvent            = null;
            }
            if (State == NetworkStates.Connecting || State == NetworkStates.Normal)
            {
                SocketAsyncEventArgs disconnectAsyncEvent = new SocketAsyncEventArgs();
                disconnectAsyncEvent.Completed += OnHandleSocketEvent;

                State = NetworkStates.Disconnecting;

                netSocket.DisconnectAsync(disconnectAsyncEvent);
            }

            lock (sendingMessageStreamLocker)
            {
                sendingMessageStream.Clear();
            }
        }
 public void StartReceiving()
 {
     if (!connected)
     {
         return;
     }
     try
     {
         var readEvent   = new AutoResetEvent(false);
         var recieveArgs = new SocketAsyncEventArgs()
         {
             UserToken = readEvent
         };
         byte[] buffer = new byte[BufferSize];
         recieveArgs.SetBuffer(buffer, 0, BufferSize);
         recieveArgs.Completed += recieveArgs_Completed;
         stopReceiver           = false;
         do
         {
             client.ReceiveAsync(recieveArgs);
             readEvent.WaitOne();//Wait for recieve
             if (!IsConnected)
             {
                 stopReceiver = true;
             }
         } while (!stopReceiver);
         recieveArgs.Completed -= recieveArgs_Completed;
     }
     catch (Exception e)
     {
         State        = NetworkStates.NetworkError;
         networkError = e;
         SendData(State.ToString(), TransmitedDataType.Status);
     }
 }
        void AcceptSocket(IAsyncResult result)
        {
            try
            {
                var server = ((TcpListener)result.AsyncState);
                client = ((TcpListener)result.AsyncState).EndAcceptSocket(result);
                Console.WriteLine("Connection accepted from " + client.RemoteEndPoint);
                connected = true;
                if (OnClientConnected != null)
                {
                    OnClientConnected.Invoke(client);
                }

                State        = NetworkStates.Connected;
                ClientState  = NetworkStates.Connected;
                networkError = null;
                SendData(State.ToString(), TransmitedDataType.Status);
                if (AutoStart)
                {
                    StartReceiving();
                }
            }
            catch (Exception e)
            {
                State        = NetworkStates.NetworkError;
                networkError = e;
            }
        }
        void dataRead(IAsyncResult result)
        {
            byte[] buffer = result.AsyncState as byte[];

            string data = ASCIIEncoding.ASCII.GetString(buffer, 0, buffer.Length);

            TransmitedDataType datatype = TransmitedDataType.Unknown;

            data = data.TrimEnd();

            if (data.Length > 4 && data.StartsWith("C"))
            {
                datatype = data.StartsWith("C101") ? TransmitedDataType.Message : data.StartsWith("C102") ?
                           TransmitedDataType.Status : data.StartsWith("C103") ? TransmitedDataType.Command :
                           data.StartsWith("C104") ? TransmitedDataType.Headers : data.StartsWith("C105") ? TransmitedDataType.RawData : TransmitedDataType.Unknown;
                if (datatype == TransmitedDataType.Status)
                {
                    var stateID = Enum.Parse(typeof(NetworkStates), data.Substring(4));

                    if (stateID is NetworkStates)
                    {
                        ServerState = (NetworkStates)stateID;
                        if (ServerState == NetworkStates.Disconnected)
                        {
                            StopReceiving();
                            State       = NetworkStates.Disconnected;
                            ServerState = NetworkStates.Disconnected;
                            connected   = false;
                            client.Close();
                            if (OnServerDisconnected != null)
                            {
                                OnServerDisconnected.Invoke();
                            }
                        }
                        // return;
                    }
                }
                if (datatype != TransmitedDataType.Unknown)
                {
                    data = data.Substring(4);
                }
            }
            latestReceivedData = data;

            if (OnDataReceived != null)
            {
                OnDataReceived.Invoke(data, datatype);
            }

            if (!stopReceiver)
            {
                buffer = new byte[BufferSize];
                connectionStream.BeginRead(buffer, 0, BufferSize, dataRead, buffer);
            }
        }
        public ClientModel(string IP = null, int port = 452, int bufferSize = 2000)
        {
            if (string.IsNullOrEmpty(IP))
            {
                IP = LocalHost.MyLocalIPAddress();
            }

            this.IP    = IP;
            this.port  = port;
            client     = new TcpClient();
            BufferSize = bufferSize;
            State      = NetworkStates.Initialized;
        }
        void recieveArgs_Completed(object sender, SocketAsyncEventArgs e)
        {
            TransmitedDataType datatype = TransmitedDataType.Unknown;

            var are = (AutoResetEvent)e.UserToken;

            are.Set();

            latestReceivedData = "";
            //  for (int i = 0; i < e.BytesTransferred; i++)
            //    latestReceivedData += Convert.ToChar(e.Buffer[i]);
            latestReceivedData = System.Text.Encoding.Default.GetString(e.Buffer).TrimEnd();
            //latestReceivedData = latestReceivedData.TrimEnd();

            if (latestReceivedData.Length > 4 && latestReceivedData.StartsWith("C"))
            {
                datatype = latestReceivedData.StartsWith("C101") ? TransmitedDataType.Message : latestReceivedData.StartsWith("C102") ?
                           TransmitedDataType.Status : latestReceivedData.StartsWith("C103") ? TransmitedDataType.Command :
                           latestReceivedData.StartsWith("C104") ? TransmitedDataType.Headers : latestReceivedData.StartsWith("C105") ? TransmitedDataType.RawData : TransmitedDataType.Unknown;

                if (datatype != TransmitedDataType.Unknown)
                {
                    latestReceivedData = latestReceivedData.Substring(4);
                }

                if (datatype == TransmitedDataType.Status)
                {
                    var stateID = Enum.Parse(typeof(NetworkStates), latestReceivedData);

                    if (stateID is NetworkStates)
                    {
                        ClientState = (NetworkStates)stateID;
                        if (ClientState == NetworkStates.Disconnected)
                        {
                            StopReceiving();
                            DropAndReset();
                            if (OnClientDisconnected != null)
                            {
                                OnClientDisconnected.Invoke();
                            }
                        }
                        // return;
                    }
                }
            }

            if (OnDataReceived != null)
            {
                OnDataReceived.Invoke(latestReceivedData, datatype);
            }
        }
	// Use this for initialization
	void Start ()
	{
		audioManager = GameObject.Find ("AudioManager").GetComponent<AudioManager> ();
		audioManager.loopMenuMusic ();
		createRoomName = "Enter a Room Name";
		username = "******";
		email = "Email";
		password = "******";
		playfabUserID = string.Empty;
		FB.Init (SetInit, OnHideUnity);
		PlayFabSettings.TitleId = PLAYFAB_TITLE_ID;
		//PlayFabSettings.UseDevelopmentEnvironment = false;
		networkState = NetworkStates.NotLoggedIn;
		//PhotonNetwork.ConnectUsingSettings("0.1");
	}
Пример #13
0
 // Use this for initialization
 void Start()
 {
     audioManager = GameObject.Find("AudioManager").GetComponent <AudioManager> ();
     audioManager.loopMenuMusic();
     createRoomName = "Enter a Room Name";
     username       = "******";
     email          = "Email";
     password       = "******";
     playfabUserID  = string.Empty;
     FB.Init(SetInit, OnHideUnity);
     PlayFabSettings.TitleId = PLAYFAB_TITLE_ID;
     //PlayFabSettings.UseDevelopmentEnvironment = false;
     networkState = NetworkStates.NotLoggedIn;
     //PhotonNetwork.ConnectUsingSettings("0.1");
 }
        public ServerModel(string IP = null, int port = 452, int bufferSize = 2000)
        {
            if (string.IsNullOrEmpty(IP))
            {
                IP = LocalHost.MyLocalIPAddress();
            }

            this.BufferSize = bufferSize;
            this.IP         = IP;
            this.port       = port;
            ipAd            = IPAddress.Parse(IP);
            server          = new TcpListener(ipAd, port);

            State = NetworkStates.Initialized;
        }
        public void StopReceiving()
        {
            try
            {
                stopReceiver = true;
                connectionStream.EndRead(null);

                connectionStream.Flush();
                connectionStream.Close();
            }
            catch (Exception e)
            {
                networkError = e;
                State        = NetworkStates.NetworkError;
            }
        }
Пример #16
0
        private void btnClient_Click(object sender, EventArgs e)
        {
            //client = new ClientModel("127.0.0.1");
            client = new ClientModel();
            // client.OnConnectedToServer += Client_OnConnectedToServer;
            client.OnDataReceived += Client_OnDataRecived;
            while (!client.ConnectToServer())
            {
                Thread.Sleep(100);
            }
            NetworkStates clientState = client.State;

            btnsendfromserver.Visible = false;
            btnServer.Visible         = false;
            btnCloseServer.Visible    = false;
        }
        public void Disconnect()
        {
            if (connected)
            {
                stopReceiver = true;
                SendData(NetworkStates.Disconnected.ToString(), TransmitedDataType.Status);
                System.Threading.Thread.Sleep(2000);

                connected = false;

                server.Stop();
                client = null;
                server = null;
            }
            State = NetworkStates.Disconnected;
        }
 public void Disconnect()
 {
     if (connected)
     {
         try
         {
             State = NetworkStates.Disconnected;
             SendData(State.ToString(), TransmitedDataType.Status);
             System.Threading.Thread.Sleep(2000);
             StopReceiving();
             client.Close();
             connected = false;
         }
         catch (Exception e)
         {
             networkError = e;
             State        = NetworkStates.NetworkError;
         }
     }
 }
        public void StartReceiving()
        {
            if (!connected)
            {
                return;
            }
            try
            {
                stopReceiver = false;
                byte[] buffer = new byte[BufferSize];

                connectionStream.BeginRead(buffer, 0, BufferSize, dataRead, buffer);
                networkError = null;
            }
            catch (Exception e)
            {
                networkError = e;
                State        = NetworkStates.NetworkError;
                SendData(State.ToString(), TransmitedDataType.Status);
            }
        }
        // ~ClientModel()
        //{
        //    if(connected)
        //    {
        //        StopReceiving();
        //        Disconnect();
        //        client = null;
        //    }
        //}

        public bool ConnectToServer()
        {
            try
            {
                //commenting out this section since when connecting in a loop it throws exception becaue here we used iasyc
                //IAsyncResult ar = client.BeginConnect(IP, port, null, client);
                //bool result = ar.AsyncWaitHandle.WaitOne(1000, false);

                //if (!result || !client.Connected)
                //{
                //    State = NetworkStates.FailedToConnect;
                //    return false;
                //}

                client.Connect(IP, port);
                // use the ipaddress as in the server program
                connectionStream = client.GetStream();
                Console.WriteLine("Connected");
                connected = true;
                if (OnConnectedToServer != null)
                {
                    OnConnectedToServer.Invoke(client.Client);
                }
                State        = NetworkStates.Connected;
                ServerState  = NetworkStates.Connected;
                networkError = null;
                SendData(State.ToString(), TransmitedDataType.Status);
                if (AutoStart)
                {
                    StartReceiving();
                }
                return(true);
            }
            catch (System.Net.Sockets.SocketException sockEx)
            {
                networkError = sockEx;
                State        = NetworkStates.NetworkError;
            }
            return(false);
        }
	private void OnGUI ()
	{
		GUI.Label (ResizeGUI(new Rect (10, 10, 500, 30)), PhotonNetwork.connectionStateDetailed.ToString ());

		if (!PhotonNetwork.connected)
			networkState = NetworkStates.NotLoggedIn;
		else if (PhotonNetwork.room == null)
			networkState = NetworkStates.InLobby;
		else if (PhotonNetwork.room != null)
			networkState = NetworkStates.InRoom;
		else
			networkState = NetworkStates.Unknown;

		// Network state machine
		switch (networkState) {
		case NetworkStates.NotLoggedIn:
			{
			/*
				if (GUI.Button (new Rect (10, 10, 150, 70), "Login to Facebook")) {
					FB.Login ("email", LoginCallback);
				}
			*/
			if (hasError) {

				StartCoroutine("waitForError");
				GUIStyle myStyle = new GUIStyle ();
				myStyle.fontSize = 36;
				GUI.Label (ResizeGUI(new Rect (10, 50, 200, 20)), myErrorMessage, myStyle);
			}

			username = GUI.TextField (ResizeGUI(new Rect (10, 100, 200, 20)), username);
			email = GUI.TextField (ResizeGUI(new Rect (10, 130, 200, 20)), email);
			password = GUI.PasswordField (ResizeGUI(new Rect (10, 160, 200, 20)), password, '*');

			if (GUI.Button (ResizeGUI(new Rect (10, 210, 150, 30)), "Create Account")) {
				audioManager.playClick();
					RegisterPlayFabUserRequest request = new RegisterPlayFabUserRequest ();
					request.TitleId = PlayFabSettings.TitleId;

					request.Username = username;
					request.Email = email;
					request.Password = password;

					PlayFabClientAPI.RegisterPlayFabUser (request, OnPlayFabRegisterSuccess, OnPlayFabError);
				}

			if (GUI.Button (ResizeGUI(new Rect (10, 250, 150, 30)), "Login with Username")) {
				audioManager.playClick();
				LoginWithPlayFabRequest request = new LoginWithPlayFabRequest ();
				request.Username = username;
				request.Password = password;
				request.TitleId = PlayFabData.TitleId;  
				PlayFabClientAPI.LoginWithPlayFab (request, OnPlayFabLoginSuccess, OnPlayFabError);
			}

			if (GUI.Button (ResizeGUI(new Rect (10, 290, 150, 30)), "Login with Email")) {
				audioManager.playClick();
				LoginWithEmailAddressRequest request = new LoginWithEmailAddressRequest();
				request.Email = email;
				request.Password = password;
				request.TitleId = PlayFabData.TitleId;
				PlayFabClientAPI.LoginWithEmailAddress(request, OnPlayFabLoginSuccess, OnPlayFabError);
			}
			
			break;
			}
		case NetworkStates.InLobby:
			{
				if (joinedRoom)
			{
				GameObject board = GameObject.Find("Board");
				Destroy(board);
				audioManager.source.Stop();
				audioManager.loopMenuMusic();
				background.SetActive(true);
				title.SetActive(true);
				turnManager.currentPlayer = 0; // resets game when you leave
				turnManager.gameOver = false;
				turnManager.gameStarted = false;
				turnManager.movesPerTurn = 2;

				GameObject go = GameObject.FindGameObjectWithTag ("Canvas");
				ActionMenu actionMenu = (ActionMenu)go.transform.FindChild ("ActionMenu(Clone)").GetComponent<ActionMenu>();

				actionMenu.DestroyActionMenu();
				joinedRoom = false;

			}
				inRoom = false;
			createRoomName = GUI.TextField (ResizeGUI(new Rect (10, 110, 150, 30)), createRoomName);
				// Create game button
			if (GUI.Button (ResizeGUI(new Rect (10, 50, 150, 50)), "Create Game")) {
				audioManager.playClick();
					Debug.Log ("room name = " + createRoomName);
					PhotonNetwork.CreateRoom (createRoomName, true, true, 5);
				}
					

				// Join existing game button
				if (roomsList != null) {
					for (int i = 0; i < roomsList.Length; i++) {
					if (GUI.Button (ResizeGUI(new Rect (10, 180 + (80 * i), 150, 70)), "Join " + roomsList [i].name))
					{
						audioManager.playClick();
						PhotonNetwork.JoinRoom (roomsList [i].name);
					}
							
					}
				}
				break;
			}
		case NetworkStates.InRoom: // in room so instantiate player
			{
				inRoom = true;
				GUILayout.Label ("Your name: " + PhotonNetwork.playerName + " - " + playfabUserID );
				GUILayout.Label (PhotonNetwork.playerList.Length + " players in this room.");
				GUILayout.Label ("The others are:");
				foreach (PhotonPlayer player in PhotonNetwork.otherPlayers) {
					GUILayout.Label (player.ToString ());
				}
				
			if (GUI.Button (ResizeGUI(new Rect (10, 70, 150, 30)), "Leave")) {
				audioManager.playClick();
					PhotonNetwork.LeaveRoom ();
				}
				break;

			}
		case NetworkStates.Unknown:
			{
				GUILayout.Label ("Unknown network state!");
				break;
			}
		}
		
		if (PhotonNetwork.connected && !inRoom) {
			if (GUI.Button (ResizeGUI(new Rect (10, Screen.height - 70, 150, 30)), "Logout")) {
				audioManager.playClick();
				if (FB.IsLoggedIn)
					FB.Logout ();
				PhotonNetwork.Disconnect ();
			}
		}
	}
Пример #22
0
    private void OnGUI()
    {
        GUI.Label(ResizeGUI(new Rect(10, 10, 500, 30)), PhotonNetwork.connectionStateDetailed.ToString());

        if (!PhotonNetwork.connected)
        {
            networkState = NetworkStates.NotLoggedIn;
        }
        else if (PhotonNetwork.room == null)
        {
            networkState = NetworkStates.InLobby;
        }
        else if (PhotonNetwork.room != null)
        {
            networkState = NetworkStates.InRoom;
        }
        else
        {
            networkState = NetworkStates.Unknown;
        }

        // Network state machine
        switch (networkState)
        {
        case NetworkStates.NotLoggedIn:
        {
            /*
             *      if (GUI.Button (new Rect (10, 10, 150, 70), "Login to Facebook")) {
             *              FB.Login ("email", LoginCallback);
             *      }
             */
            if (hasError)
            {
                StartCoroutine("waitForError");
                GUIStyle myStyle = new GUIStyle();
                myStyle.fontSize = 36;
                GUI.Label(ResizeGUI(new Rect(10, 50, 200, 20)), myErrorMessage, myStyle);
            }

            username = GUI.TextField(ResizeGUI(new Rect(10, 100, 200, 20)), username);
            email    = GUI.TextField(ResizeGUI(new Rect(10, 130, 200, 20)), email);
            password = GUI.PasswordField(ResizeGUI(new Rect(10, 160, 200, 20)), password, '*');

            if (GUI.Button(ResizeGUI(new Rect(10, 210, 150, 30)), "Create Account"))
            {
                audioManager.playClick();
                RegisterPlayFabUserRequest request = new RegisterPlayFabUserRequest();
                request.TitleId = PlayFabSettings.TitleId;

                request.Username = username;
                request.Email    = email;
                request.Password = password;

                PlayFabClientAPI.RegisterPlayFabUser(request, OnPlayFabRegisterSuccess, OnPlayFabError);
            }

            if (GUI.Button(ResizeGUI(new Rect(10, 250, 150, 30)), "Login with Username"))
            {
                audioManager.playClick();
                LoginWithPlayFabRequest request = new LoginWithPlayFabRequest();
                request.Username = username;
                request.Password = password;
                request.TitleId  = PlayFabData.TitleId;
                PlayFabClientAPI.LoginWithPlayFab(request, OnPlayFabLoginSuccess, OnPlayFabError);
            }

            if (GUI.Button(ResizeGUI(new Rect(10, 290, 150, 30)), "Login with Email"))
            {
                audioManager.playClick();
                LoginWithEmailAddressRequest request = new LoginWithEmailAddressRequest();
                request.Email    = email;
                request.Password = password;
                request.TitleId  = PlayFabData.TitleId;
                PlayFabClientAPI.LoginWithEmailAddress(request, OnPlayFabLoginSuccess, OnPlayFabError);
            }

            break;
        }

        case NetworkStates.InLobby:
        {
            if (joinedRoom)
            {
                GameObject board = GameObject.Find("Board");
                Destroy(board);
                audioManager.source.Stop();
                audioManager.loopMenuMusic();
                background.SetActive(true);
                title.SetActive(true);
                turnManager.currentPlayer = 0;                 // resets game when you leave
                turnManager.gameOver      = false;
                turnManager.gameStarted   = false;
                turnManager.movesPerTurn  = 2;

                GameObject go         = GameObject.FindGameObjectWithTag("Canvas");
                ActionMenu actionMenu = (ActionMenu)go.transform.FindChild("ActionMenu(Clone)").GetComponent <ActionMenu>();

                actionMenu.DestroyActionMenu();
                joinedRoom = false;
            }
            inRoom         = false;
            createRoomName = GUI.TextField(ResizeGUI(new Rect(10, 110, 150, 30)), createRoomName);
            // Create game button
            if (GUI.Button(ResizeGUI(new Rect(10, 50, 150, 50)), "Create Game"))
            {
                audioManager.playClick();
                Debug.Log("room name = " + createRoomName);
                PhotonNetwork.CreateRoom(createRoomName, true, true, 5);
            }


            // Join existing game button
            if (roomsList != null)
            {
                for (int i = 0; i < roomsList.Length; i++)
                {
                    if (GUI.Button(ResizeGUI(new Rect(10, 180 + (80 * i), 150, 70)), "Join " + roomsList [i].name))
                    {
                        audioManager.playClick();
                        PhotonNetwork.JoinRoom(roomsList [i].name);
                    }
                }
            }
            break;
        }

        case NetworkStates.InRoom:         // in room so instantiate player
        {
            inRoom = true;
            GUILayout.Label("Your name: " + PhotonNetwork.playerName + " - " + playfabUserID);
            GUILayout.Label(PhotonNetwork.playerList.Length + " players in this room.");
            GUILayout.Label("The others are:");
            foreach (PhotonPlayer player in PhotonNetwork.otherPlayers)
            {
                GUILayout.Label(player.ToString());
            }

            if (GUI.Button(ResizeGUI(new Rect(10, 70, 150, 30)), "Leave"))
            {
                audioManager.playClick();
                PhotonNetwork.LeaveRoom();
            }
            break;
        }

        case NetworkStates.Unknown:
        {
            GUILayout.Label("Unknown network state!");
            break;
        }
        }

        if (PhotonNetwork.connected && !inRoom)
        {
            if (GUI.Button(ResizeGUI(new Rect(10, Screen.height - 70, 150, 30)), "Logout"))
            {
                audioManager.playClick();
                if (FB.IsLoggedIn)
                {
                    FB.Logout();
                }
                PhotonNetwork.Disconnect();
            }
        }
    }
Пример #23
0
 private void DeInitializeNetworking()
 {
     NetworkState = NetworkStates.ShuttingDown;
     CloseSocket();
 }
 public void AcceptConnection()
 {
     server.Start();
     State = NetworkStates.WaitingForConnection;
     server.BeginAcceptSocket(AcceptSocket, server);
 }