Пример #1
0
    private IEnumerator CheckQueue()
    {
        //큐를 1초 주기로 탐색
        WaitForSeconds waitSec = new WaitForSeconds(0.1f);

        while (true)
        {
            //Postbox 에서 인스턴스를 생성해 data를 모두 가져온다.
            string data = postbox.GetData();

            //데이터가 비어있지않으면
            if (!data.Equals(string.Empty))
            {
                CreateLog(data);

                //만약에 일반 채팅이면
                if (!data.Contains("전체") && !data.Contains("알림"))
                {
                    // 말풍선을 생성함.
                    CreateChatBubble(data);
                }
            }

            yield return(waitSec);
        }
    }
Пример #2
0
    //큐를 주기적으로 탐색
    private IEnumerator CheckQueue()
    {
        //1초 주기로 탐색
        WaitForSeconds waitSec = new WaitForSeconds(1);

        while (true)
        {
            //우편함에서 데이타 꺼내기
            string data = postbox.GetData();

            //우편함에 데이타가 있는 경우
            if (!data.Equals(string.Empty))
            {
                //데이타로 UI 갱신
                ResponseData(data);
                yield break;
            }

            yield return(waitSec);
        }
    }
Пример #3
0
    //큐를 주기적으로 탐색
    private IEnumerator CheckQueue()
    {
        //1초 주기로 탐색
        int waitDataRecieve = 1;

        Debug.Log("탐색");

        while (true)
        {
            //우편함에서 데이타 꺼내기
            string data = postbox.GetData();

            //우편함에 데이타가 있는 경우
            if (!data.Equals(string.Empty))
            {
                //데이타로 UI 갱신
                ResponseData(data);
                Debug.Log("data" + data);
                //yield break;
            }
            yield return(new WaitForSeconds(waitDataRecieve));
        }
    }
Пример #4
0
    void Update()
    {
        //애니메이터 선언
        if (Player != null)
        {
            anim = Player.GetComponent <Animator> ();


            if (MoveFlag)
            {
                Player.transform.Translate(Vector3.forward * Time.deltaTime * 4f);

                //서버로 데이터 보내기(주기적업데이트).
                if (Player != null && stream != null)
                {
                    string strPos = PosToStr(Player.transform.position);
                    user.LastPos = strPos;
                    string strRot = RotToStr(Player.transform.rotation);
                    user.LastRot = strRot;

                    // Debug.Log("Is Walking: " + user.IsWalking);
                    user.IsWalking = true;
                    SendData(user);
                }

                //애니메이터 transform
                anim.SetBool("IsWalking", MoveFlag);
            }
        }



        //InstanceFlag 가 true 값일때 새로운 유저 캐릭터를 만든다.
        if (InstanceFlag == true)
        {
            User info = instanceBox.GetData();
            if (info != null)
            {
                //뉴비 캐릭터 생성
                InstantiateOtherPlayer(info);
            }
            else
            {
                Debug.Log("유저가 들어오긴 했지만 instanceBox가 null임");
            }


            InstanceFlag = false;
        }

        //ExitFlag 가 true 값일때 유저캐릭터를 없앤다.
        if (ExitFlag == true)
        {
            Debug.Log("ExitFlag == true");
            string user_exit_id = exitBox.GetData();
            if (user_exit_id != null)
            {
                //나간사람 캐릭터 지우기.
                RemovePlayer(user_exit_id);
                //userList에서 아이디도 지우기.
                userList.Remove(user_exit_id);
            }
            else
            {
                Debug.Log("유저가 나가긴 했지만 exitBox가 null임");
            }

            ExitFlag = false;
        }

        // 크리스마스방 trigger가 눌렸는지 확인.
        // Trigger가 눌렸다면
        if (MoveSceneTrigger.TRIGGER_ROOM2 == true)
        {
            //우선 loginManager의 curRoom 값을 업데이트.
            LoginManager.UserCurRoom = "room2";
            // user의 curRoom 값을 변경해주고,
            user.CurRoom = "room2";
            // 서버로 알림.
            SendData_chRoom(user);

            // 현재 방에 있는 유저 리스트들을 지우고, 새로운 방의 유저 리스트를
            // 채워주기 위하여 hashtable을 clear한다.
            userList.Clear();

            MoveSceneTrigger.TRIGGER_ROOM2 = false;
        }


        if (CampSiteTrigger.TRIGGER_ROOM3 == true)
        {
            //우선 loginManager의 curRoom 값을 업데이트.
            LoginManager.UserCurRoom = "room3";
            // user의 curRoom 값을 변경해주고,
            user.CurRoom = "room3";
            // 서버로 알림.
            SendData_chRoom(user);


            userList.Clear();


            CampSiteTrigger.TRIGGER_ROOM3 = false;
        }

        if (CampSiteTrigger_2.CAMPSITETRIGGER == true)
        {
            //우선 loginManager의 curRoom 값을 업데이트.
            LoginManager.UserCurRoom = "room1";
            // user의 curRoom 값을 변경해주고,
            user.CurRoom = "room1";
            // 서버로 알림.
            SendData_chRoom(user);

            //
            userList.Clear();


            CampSiteTrigger_2.CAMPSITETRIGGER = false;
        }

        Exit();
    }