//Metodo Courutine, Este metodo inicia la conexion con la campaña. Si esta todo correcto activa la UI de la campaña. IEnumerator joinCampaña() { loadingLogIn.SetActive(true); carga.peticion = "joinCampaña"; carga.json = perfilData.Campañas[0].getAsJSON(); Debug.Log(carga.json); sender.send(carga.getAsJSON()); yield return(new WaitForSeconds(Seconds)); carga = Carga.getFromJSON(str); if (carga.assigned.Equals("false") || carga.json.Equals("denied")) { loadingLogIn.SetActive(false); } else { campaña = Campaña.getFromJson(carga.json); campañaData = CampañaData.getFromJson(campaña.CampañaJSON); loadingLogIn.SetActive(false); menu.SetActive(false); UICampaña.SetActive(true); } }
//Metodo para procesar la informacion que se recive del servidor conrinuamente, como las notificaciones, el chat, o el movimiento de los token segun la peticion recivida del servidor public void ProcessData() { if (!String.Equals(str, "accede")) { Carga Aux = new Carga(); Aux = Carga.getFromJSON(str); if (String.Equals(Aux.peticion, "chatMessage")) { Text nuevoTexto = GameObject.Instantiate(Message); nuevoTexto.transform.parent = chatBoxContent.transform; mensaje = Mensaje.getFromJson(Aux.json); nuevoTexto.text = mensaje.Emisor + ": " + mensaje.Messaje; str = "accede"; } if (String.Equals(Aux.peticion, "sendNotificacion")) { mensaje = Mensaje.getFromJson(Aux.json); if (String.Equals(mensaje.Receptor, perfil.Nombre)) { perfilData.Campañas.Add(Campaña.getFromJson(mensaje.Messaje)); botonCampañaTexto.text = perfilData.Campañas[0].Nombre; } str = "accede"; } if (String.Equals(Aux.peticion, "tokenMove")) { Token fichaAux = Token.getFromJson(Aux.json); invocarToken(fichaAux); str = "accede"; } if (String.Equals(Aux.peticion, "leaveCampaña")) { if (String.Equals(Aux.json, "kick")) { carga.assigned = "false"; GameObject[] fichas = GameObject.FindGameObjectsWithTag("Token"); foreach (GameObject ficha in fichas) { Destroy(ficha); } menu.SetActive(true); UICampaña.SetActive(false); str = "accede"; } else { Perfil aux = Perfil.getFromJson(Aux.json); Destroy(GameObject.Find(aux.Nombre)); str = "accede"; } } } }