public bool StartAsHost(int hostPort, int maxConnections) { InitializeNetworking(); HostTopology topology = new HostTopology(ConnectionConfig, maxConnections); bool success = false; int tmpHostId = -1; tmpHostId = NetworkTransport.AddHost(topology, hostPort); if (tmpHostId >= 0) { Mode = OnlineSessionMode.Server; HostId = tmpHostId; success = true; } if (!success) { Debug.LogError("StartAsHost failed"); } return(success); }
public bool StartAsClient(int hostPort, string connectToIP, int connectToPort) { InitializeNetworking(); HostTopology topology = new HostTopology(ConnectionConfig, 1); bool success = false; int tmpHostId = -1; tmpHostId = NetworkTransport.AddHost(topology, hostPort); if (tmpHostId >= 0) { byte networkError; int connectionId = NetworkTransport.Connect(tmpHostId, connectToIP, connectToPort, 0, out networkError); if ((NetworkError)networkError == NetworkError.Ok) { Mode = OnlineSessionMode.Client; HostId = tmpHostId; success = true; } } if (!success) { Debug.LogError("StartAsClient failed"); } return(success); }
public void TerminateNetworking() { NetworkTransport.Shutdown(); Mode = OnlineSessionMode.Offline; }
public void Start() { StartGameButton.gameObject.SetActive(false); HostButton.onClick.AddListener(OnHostButton); ConnectButton.onClick.AddListener(OnConnectButton); DisconnectButton.onClick.AddListener(OnOfflineButton); StartGameButton.onClick.AddListener(OnStartGameButton); GameStatics.GameData = GameData; Initialize(); // Cmd args OnlineSessionMode startMode = OnlineSessionMode.Offline; string[] args = System.Environment.GetCommandLineArgs(); foreach (string arg in args) { string[] splitArg = arg.Split(':'); if (splitArg.Length >= 2) { switch (splitArg[0]) { case "mode": switch (splitArg[1]) { case "server": startMode = OnlineSessionMode.Server; break; case "client": startMode = OnlineSessionMode.Client; break; } break; case "hostport": LocalHostPortField.text = splitArg[1]; break; case "connectip": ConnectIPField.text = splitArg[1]; break; case "connectport": ConnectPortField.text = splitArg[1]; break; case "playername": NameField.text = splitArg[1]; break; } } } if (startMode == OnlineSessionMode.Server) { OnHostButton(); } else if (startMode == OnlineSessionMode.Client) { OnConnectButton(); } }