// 서버에 접속된 이후에 처리할 루프 // 마우스 입력이 들어오면 ENTER_GAME_ROOM_REQ 프로토콜을 요청하고 // 중복 요청을 방지하기 위해서 현재 코루틴을 중지 시킨다. IEnumerator after_connected() { // CBattleRoom의 게임오버 상태에서 마우스 입력을 통해 메인 화면으로 넘어오도록 되어 있는데, // 한 프레임 내에서 이 코루틴이 실행될 경우 아직 마우스 입력이 남아있는것으로 판단되어 // 메인 화면으로 돌아오자 마자 ENTER_GAME_ROOM_REQ패킷을 보내는 일이 발생한다. // 따라서 강제로 한 프레임을 건너뛰어 다음 프레임부터 코루틴의 내용이 수행될 수 있도록 한다. yield return(new WaitForEndOfFrame()); while (true) { if (this.user_state == USER_STATE.CONNECTED) { if (Input.GetMouseButtonDown(0)) { this.user_state = USER_STATE.WAITING_MATCHING; CPacket msg = CPacket.create((short)PROTOCOL.ENTER_GAME_ROOM_REQ); this.network_manager.send(msg); StopCoroutine("after_connected"); } } yield return(0); } }
void Awake() { this.user_state = USER_STATE.NOT_CONNECTED; this.network_manager = GameObject.FindObjectOfType <CNetworkManager>(); this.user_state = USER_STATE.NOT_CONNECTED; transform.FindChild("button_start").GetComponent <Button>().onClick.AddListener(this.on_play); }
///// <summary> ///// 서버에 접속이 완료되면 호출됨. ///// </summary> public void on_connected() { this.user_state = USER_STATE.CONNECTED; LoadingImage.SetActive(false); StartCoroutine("after_connected"); CPacketSender.ID_CHANGE_REQ_SEND( PlayerPrefs.GetString("id", "noname"), PlayerPrefs.GetInt("level", 1)); }
// Use this for initialization void Start() { this.user_state = USER_STATE.NOT_CONNECTED; this.bg = Resources.Load("images/title_blue") as Texture; this.battle_room = GameObject.Find("BattleRoom").GetComponent <CBattleRoom>(); this.battle_room.gameObject.SetActive(false); this.network_manager = GameObject.Find("NetworkManager").GetComponent <CNetworkManager>(); this.user_state = USER_STATE.NOT_CONNECTED; enter(); }
public void Enter() { this.network_manager.messageReceiver = this; if (!this.network_manager.is_connected()) { this.userState = USER_STATE.CONNECTED; this.network_manager.connect(); } else { on_connected(); } }
public void enter() { StopCoroutine("after_connected"); this.network_manager.message_receiver = this; if (!this.network_manager.is_connected()) { this.user_state = USER_STATE.CONNECTED; this.network_manager.connect(); } else { on_connected(); } }
public bool MatchingRequest() { Debug.Log("MatchingRequest"); if (userState.Equals(USER_STATE.WAITING_MATCHING) || userState.Equals(USER_STATE.NOT_CONNECTED)) { return(false); } CPacket msg = CPacket.create((short)PROTOCOL.ENTER_GAME_ROOM_REQ); for (int i = 0; i < Constants.BUILDING_PER_DECK; i++) { Debug.Log("Deck transfering: " + DeckManager.instance.NowDeck[i].CardType); msg.push((byte)DeckManager.instance.NowDeck[i].CardType); } network_manager.send(msg); userState = USER_STATE.WAITING_MATCHING; return(true); }
public void ChangeUserState(USER_STATE state) { userState = state; switch (userState) { case USER_STATE.IDLE: lineMan.RemoveMousePointFromLine(); mouseCursor.GetComponent <SpriteRenderer>().enabled = false; CheckLevelComplete(); break; case USER_STATE.DRAWING: lineMan.AddMousePointToLine(); mouseCursor.GetComponent <SpriteRenderer>().enabled = true; //mouseCursor.SetActive(true); break; } }
void on_status_changed(NETWORK_EVENT status) { switch (status) { case NETWORK_EVENT.connected: { CLogManager.log("on connected"); this.received_msg += "on connected\n"; user_state = USER_STATE.CONNECTED; break; } case NETWORK_EVENT.disconnected: { CLogManager.log("disconnected"); this.received_msg += "disconnected\n"; user_state = USER_STATE.NOT_CONNECTED; break; } } }
IEnumerator after_connected() { yield return(new WaitForEndOfFrame()); while (true) { if (this.user_state == USER_STATE.CONNECTED) { if (Input.GetMouseButtonDown(0)) { this.user_state = USER_STATE.WAITING_MATCHING; CPacket msg = CPacket.create((short)PROTOCOL.ENTER_GAME_ROOM_REQ); this.network_manager.send(msg); StopCoroutine("after_connected"); } } yield return(0); } }
//Texture waiting_img; // public UnityEngine.UI.Text ResultCode; // public GameObject gResultCode; void OnEnable() { network_manager = gameObject.AddComponent <CNetworkManager>(); this.user_state = USER_STATE.NOT_CONNECTED; OnServerEnter(); }
public bool StateIs(USER_STATE test) { return StateTest(this.state, test); }
public static bool StateTest(USER_STATE state, USER_STATE test) { return ((state & test) != 0); }
public void on_connected() { this.userState = USER_STATE.CONNECTED; }
// 서버에 접속이 완료되면 호출됨 public void on_connected() { this.user_state = USER_STATE.CONNECTED; StartCoroutine("after_connected"); }
public static bool StateTest(USER_STATE state, USER_STATE test) { return((state & test) != 0); }
private void Start() { this.userState = USER_STATE.NOT_CONNECTED; }
public bool StateIs(USER_STATE test) { return(StateTest(this.state, test)); }
void OnEnable() { network_manager = gameObject.AddComponent <CNetworkManager>(); //network_manager.SaveServer = true; this.user_state = USER_STATE.NOT_CONNECTED; }