private static void ConnectLobbyCallbackImpl(IntPtr ptr, Result result, ref Lobby lobby) { GCHandle h = GCHandle.FromIntPtr(ptr); ConnectLobbyHandler callback = (ConnectLobbyHandler)h.Target; h.Free(); callback(result, ref lobby); }
/// <summary> /// Connects the current user to a given lobby. You can be connected to up to five lobbies at a time. /// </summary> /// <param name="lobbyId"></param> /// <param name="secret"></param> /// <param name="callback"></param> public void ConnectLobby(long lobbyId, string secret, ConnectLobbyHandler callback) { GCHandle wrapped = GCHandle.Alloc(callback); Methods.ConnectLobby(methodsPtr, lobbyId, secret, GCHandle.ToIntPtr(wrapped), ConnectLobbyCallbackImpl); }