/// <summary> /// 分配座位 /// </summary> private UnityTask InitSeat() { //假设目前是进入的一个房间,房间中是已经有其它玩家的,此时需要先根据情况分配他们的座位在自己客户端上 var players = _netComponent.WebClient.Room.PlayerList; List <UnityTask> tasks = (players.Select(player => { player.CustomProperties.TryGetString("Seat", out var seat); return(new { player, seat }); }) .Where(@t1 => !string.IsNullOrEmpty(@t1.seat)) .Select(@t1 => new AVQuery <Player>() .WhereEqualTo(_netComponent.GetProperty <Player>(p => p.UserId), @t1.player.UserId) .FirstOrDefaultAsync() .ContinueToForeground(t => { _seats[int.Parse(@t1.seat)].Item2.text = t.Result.PetName; //_playerToggle.transform.GetChild(int.Parse(@t1.seat)).GetComponentInChildren<Text>().text = // t.Result.PetName; return(0); }))).Cast <UnityTask>() .ToList(); return(UnityTask.WhenAll(tasks)); }