/// <summary> /// Async JoinLobby /// </summary> /// <param name="lobby">LobbyInterface</param> /// <param name="lobbyDetailsHandle">Lobby detail</param> /// <param name="localUserId">Login user id</param> /// <returns>Task</returns> public static async UniTask <JoinLobbyCallbackInfo> JoinLobby(this LobbyInterface lobby, LobbyDetails lobbyDetailsHandle, ProductUserId localUserId) { var joinOp = new JoinLobbyOptions { LobbyDetailsHandle = lobbyDetailsHandle, LocalUserId = localUserId }; JoinLobbyCallbackInfo info = null; lobby.JoinLobby(joinOp, null, e => { info = e; }); while (info == null) { await UniTask.NextFrame(); } if (info.ResultCode == Result.Success) { return(info); } Debug.LogError($"error {DebugTools.GetClassMethodName()}:{info.ResultCode}"); return(null); }
public void Set(JoinLobbyOptions other) { if (other != null) { m_ApiVersion = LobbyInterface.JoinlobbyApiLatest; LobbyDetailsHandle = other.LobbyDetailsHandle; LocalUserId = other.LocalUserId; PresenceEnabled = other.PresenceEnabled; } }