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); } }
//큐를 주기적으로 탐색 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); } }
//큐를 주기적으로 탐색 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)); } }
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(); }