public override void OnReceivedRoomListUpdate() { foreach (GameObject obj in GameObject.FindGameObjectsWithTag("GameRoomCell")) { Destroy(obj); } scrollContent.GetComponent <RectTransform>().sizeDelta = Vector2.zero; foreach (RoomInfo room in PhotonNetwork.GetRoomList()) { GameObject gameRoomCellObject = Instantiate(gameRoomCellPrefab); gameRoomCellObject.transform.SetParent(scrollContent.transform, false); GameRoomInfo gameRoomInfo = new GameRoomInfo(room.Name, room.PlayerCount, room.MaxPlayers); GameRoomCell gameRoomCell = gameRoomCellObject.GetComponent <GameRoomCell>(); gameRoomCell.SetRoomInfo(gameRoomInfo); //셀 선택 동작 gameRoomCellObject.GetComponent <Button>().onClick.AddListener( delegate { Interactable(false); //룸 셀 클랙 시 상호작용 불가능하게. PhotonNetwork.JoinRoom(gameRoomInfo.roomName); }); scrollContent.GetComponent <RectTransform>().sizeDelta += new Vector2(0, 70); } }
//방 정보 변경 감지 + 방 목록 확인 가능 함수 public override void OnReceivedRoomListUpdate() { foreach (GameObject obj in GameObject.FindGameObjectsWithTag("GameRoomCell")) { Destroy(obj); } scrollContent.GetComponent <RectTransform>().sizeDelta = Vector2.zero; int rowCount = 0; foreach (RoomInfo room in PhotonNetwork.GetRoomList()) { GameObject gameRoomCellObject = Instantiate(gameRoomCellPrefab); gameRoomCellObject.transform.SetParent(scrollContent.transform, false); //게임정보를 담은 구조체로 객체 생성 GameRoomInfo gameRoomInfo = new GameRoomInfo(room.Name, room.PlayerCount, room.MaxPlayers); GameRoomCell gameRoomCell = gameRoomCellObject.GetComponent <GameRoomCell>(); gameRoomCell.SetRoomInfo(gameRoomInfo); //셀 선택 동작 //OnClick 이벤트가 실행되면(AddListener가 주시하다가) 델리게이트 무명함수를 실행 gameRoomCellObject.GetComponent <Button>().onClick.AddListener(delegate { PhotonNetwork.JoinRoom(gameRoomInfo.roomName); }); scrollContent.GetComponent <RectTransform>().sizeDelta += new Vector2(0, 80); } //base.OnReceivedRoomListUpdate(); }