protected static void ConnectTeardown(NetworkObject.NetworkObjectEvent objectCreatedCallback = null) { if (objectCreatedCallback != null) { client.objectCreated -= objectCreatedCallback; server.objectCreated -= objectCreatedCallback; } if (otherClient != null) { if (objectCreatedCallback != null) { otherClient.objectCreated -= objectCreatedCallback; } otherClient.Disconnect(false); } client.Disconnect(false); server.Disconnect(false); WaitFor(() => { return(!client.IsBound && !server.IsBound && (otherClient == null || !otherClient.IsBound)); }); server = null; client = null; otherClient = null; }
protected static void ConnectSetup(bool useOtherClient = false, NetworkObject.NetworkObjectEvent objectCreatedCallback = null) { currentPort = GetPort(); start = DateTime.UtcNow; server = new UDPServer(32); server.Connect(port: currentPort); if (objectCreatedCallback != null) { server.objectCreated += objectCreatedCallback; } client = new UDPClient(); client.Connect("127.0.0.1", currentPort); if (objectCreatedCallback != null) { client.objectCreated += objectCreatedCallback; } WaitFor(() => { return(server.Players.Last().Accepted); }); NetworkObject.Flush(client); if (!useOtherClient) { return; } OtherClientConnectSetup(objectCreatedCallback); }
protected static void OtherClientConnectSetup(NetworkObject.NetworkObjectEvent objectCreatedCallback = null) { otherClient = new UDPClient(); otherClient.Connect("127.0.0.1", currentPort); if (objectCreatedCallback != null) { otherClient.objectCreated += objectCreatedCallback; } WaitFor(() => { return(server.Players.Last().Accepted); }); NetworkObject.Flush(otherClient); }