public void OnEvent(EventData photonEvent) { CodigoEventosJuego codigoEventos = (CodigoEventosJuego)photonEvent.Code; //Debug.LogFormat("OnEvent(): {0}, {1}", codigoEventos, photonEvent.CustomData); switch (codigoEventos) { //Este caso cuenta a los jugadores que han tomado el bus al inicio del día case CodigoEventosJuego.JugadorJuega: string JugadorId = (string)photonEvent.CustomData; if (SeJugo != null) { SeJugo(JugadorId); } ConfirmarJugadores(JugadorId); break; //Carga la escena de llegada una vez que todos los jugadores toman el bus case CodigoEventosJuego.EsperarBus: StartCoroutine(MostrarAnimacionBus((float)duracionAnimacionBus)); //20.0f es el tiempo aprox que dura la animación del bus break; case CodigoEventosJuego.TerminarEspera: StopAllCoroutines(); SceneManager.LoadScene(8); break; //Se carga la escena 6 al terminar el día, si se está en el último día se muestran los resultados finales case CodigoEventosJuego.NuevoDia: JugadoresJugados.Clear(); JugadoresJugados.AddRange(JugadoresEnSala); if (Jugador.diaActual == maxDias) { SceneManager.LoadScene(10); } else { SceneManager.LoadScene(6); } break; //Se reinician las listas de jugadores al comenzar un juego nuevo case CodigoEventosJuego.NuevoJuego: JugadoresEnSala.Clear(); JugadoresJugados.Clear(); foreach (Player p in PhotonNetwork.PlayerList) { JugadoresEnSala.Add(p.NickName); } JugadoresJugados.AddRange(GameManager.instance.JugadoresEnSala); break; default: break; } }
/// <summary> /// Se encapsula el metodo RaiseEvent /// </summary> /// <param name="eventosJuego"></param> /// <param name="param"></param> /// <param name="target"></param> public static void LevantarEventos(CodigoEventosJuego eventosJuego, object param, ReceiverGroup target) { RaiseEventOptions raiseEventOptions = new RaiseEventOptions { Receivers = target }; SendOptions sendOptions = new SendOptions { Reliability = true }; PhotonNetwork.RaiseEvent((byte)eventosJuego, param, raiseEventOptions, sendOptions); }