private void AddRoomItems(List <RoomVO> roomList) { var content = RL_RoomListScrollView.content; foreach (var room in roomList) { GameObject item = Instantiate(_roomItemPrefab, content) as GameObject; var toggle = item.GetComponent <Toggle>(); toggle.group = content.GetComponent <ToggleGroup>(); var roomItem = item.GetComponent <RoomItem>(); (roomItem.RoomId, roomItem.RoomName, roomItem.OwnerId, roomItem.OwnerName, roomItem.RoomMode, roomItem.RoomMap, roomItem.PlayerNum) = room; toggle.onValueChanged.AddListener(isOn => { if (isOn) { SetRoomInfo(roomItem); } }); var joinRoomBtn = item.GetComponentInChildren <Button>(); joinRoomBtn.onClick.AddListener(() => OnJoinRoom?.Invoke(room.RoomID)); } var firstToggle = content.GetComponentInChildren <Toggle>(); if (firstToggle != null) { firstToggle.isOn = true; } }
public void OnCreateAndJoinRoomAnswer(ProtobufPacket <CreateAndJoinRoomAnswerPacket> packet) { CreateAndJoinRoomAnswerPacket answer = packet.ProtobufMessage; OnCreateRoom?.Invoke(this, answer.Success); OnJoinRoom?.Invoke(this, new Tuple <string, bool>(answer.RoomName, answer.Success)); }
public void OnJoinRoomAnswer(ProtobufPacket <JoinRoomAnswerPacket> packet) { JoinRoomAnswerPacket answer = packet.ProtobufMessage; string s = answer.Success ? "성공했습니다." : "실패했습니다."; Debug.Log($"{answer.RoomName} 방 입장에 {s}"); OnJoinRoom?.Invoke(this, new Tuple <string, bool>(answer.RoomName, answer.Success)); }
public override void OnJoinedRoom() { if (OnJoinRoom != null) { OnJoinRoom.Invoke(); } Player.Local.Photon.ClearProperty(TankProperty.Deaths); Player.Local.Photon.ClearProperty(TankProperty.Kills); Player.Local.Photon.ClearProperty(TankProperty.Team); if (OfflineMode == false) { StopAllCoroutines(); StartCoroutine(UpdatePlayerPing()); } }
private void ThreadEventDispatch() { while (false == EventStop.Wait(1)) { string json = ""; bool pop_ok = EventJsonQueue.TryDequeue(out json); if (!pop_ok || json == null || json == "") { continue; } OnEventRawString?.Invoke(this, json); JObject jdata = null; EVENT_TYPE type = ParseEventType(json, out jdata); //因為必須在conference裡面中轉各個customized header,不得已只好自己維護live channel的資料... //收到CHANNEL_CREATE事件時就收錄channel資訊 //留在Conference Create時撈出來看 variable_sip_h_X-* 變數.... switch (type) { case EVENT_TYPE.CALL_TO_SWITCH: OnCall?.Invoke(this, new CCallEvent(jdata)); break; case EVENT_TYPE.SWITCH_CALL_USER: OnCall?.Invoke(this, new CCallEvent(jdata)); break; case EVENT_TYPE.ANSWER: OnAnswer?.Invoke(this, new CAnswerEvent(jdata)); break; case EVENT_TYPE.HANGUP: OnHangUp?.Invoke(this, new CHangUpEvent(jdata)); break; case EVENT_TYPE.DESTROY_CALL: OnCallDestroy?.Invoke(this, new CCallEvent(jdata)); break; case EVENT_TYPE.CONFERENCE_CREATE: OnRoomCreate?.Invoke(this, new CConferenceCreateEvent(jdata)); break; case EVENT_TYPE.CONFERENCE_DELETE: OnRoomDelete?.Invoke(this, new CConferenceDeleteEvent(jdata)); break; case EVENT_TYPE.JOIN_CONFERENCE: OnJoinRoom?.Invoke(this, new CJoinConferenceEvent(jdata)); break; case EVENT_TYPE.LEAVE_CONFERENCE: OnLeaveRoom?.Invoke(this, new CLeaveConferenceEvent(jdata)); break; case EVENT_TYPE.REGISTER: OnSipRegister?.Invoke(this, new CSipRegister(jdata)); break; default: Log.Warn($"Unsupported event type {type.ToString()}, skip it..."); break; } } //Queue沒有Clear(),只能用這種蠢方法清除 while (EventJsonQueue.Count > 0) { string msg = ""; EventJsonQueue.TryDequeue(out msg); } }
public override void OnJoinedRoom() { Debug.Log("Se ingreso a un room, en este metodo, haz lo que necesitas con el Master"); OnJoinRoom.Invoke(); }