Esempio n. 1
0
        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());
        }
    }
Esempio n. 5
0
        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);
            }
        }
Esempio n. 6
0
 public override void OnJoinedRoom()
 {
     Debug.Log("Se ingreso a un room, en este metodo, haz lo que necesitas con el Master");
     OnJoinRoom.Invoke();
 }