// Start is called before the first frame update void Start() { Debug.Log("MultiplayerSystem: starting mp sys!"); instance = this; }
void Start() { Thread.CurrentThread.CurrentCulture = new CultureInfo("en-us"); bool isMultiplayer = Scenes.getParam("multiplayer") == "true"; if (isMultiplayer) { playerMove = player.GetComponent <PlayerMove>(); buildingSystem = blockManager.GetComponent <BuildingSystem>(); multiplayerSystem = GetComponent <MultiplayerSystem>(); myClientName = Scenes.getParam("userName"); ipOfFirstPeerConnecton = Scenes.getParam("ip"); if (ipOfFirstPeerConnecton.Equals("localhost")) { ipOfFirstPeerConnecton = GetLocalIPAddress(); } string remotePortAsString = Scenes.getParam("remotePort"); string localPortAsString = Scenes.getParam("localPort"); remotePort = Int32.Parse(remotePortAsString); localPort = Int32.Parse(localPortAsString); Debug.Log("Manager of " + myClientName + ": Manager: IS Multiplayer! read ip and port from params = " + ipOfFirstPeerConnecton + ":" + remotePort + " / " + localPort); //players.Add(myClientName, player); //1 & 1b server = new PeerToPeerServer(this, localPort); server.Start(); Debug.Log("Manager of " + myClientName + ": Manager: Server started"); //1a) peers.Add(myClientName, GetLocalIPAddress() + ":" + localPort); //2 if ((!ipOfFirstPeerConnecton.Equals("localhost")) && (!ipOfFirstPeerConnecton.Equals("127.0.0.1")) && (!ipOfFirstPeerConnecton.Equals(GetLocalIPAddress()))) { Debug.Log("Manager of " + myClientName + ": connecting to peer of non local game"); //then connect to peer ConnectToExistingPeers(); } else if (remotePort != localPort) { Debug.Log("Manager of " + myClientName + ": connecting to ppeer of local game"); ConnectToExistingPeers(); } else { Debug.Log("Manager of " + myClientName + ": first peer - no connection needed"); } /* * 1. eigenen Server starten (angabe des port) * a) speichern der eignen instanz in der liste der ip adressen um diese ggf an andere clients zu kommunizieren * b) Hören auf eingehende Verbindungen * */ } pingThread = new Thread(new ThreadStart(SendPingMessages)); pingThread.IsBackground = true; pingThread.Start(); }