Cuando está haciendo un juego multijugador, además de sincronizar las propiedades de los GameObjects en red, es probable que necesite enviar, recibir y reaccionar a otros datos, como cuando comienza la partida, cuando el jugador se une o abandona el partido, u otra información específica para su tipo de juego, por ejemplo, una notificación a todos los jugadores de que se ha capturado una bandera en un juego de estilo “capturar la bandera”.
Dentro de la API de alto nivel de la red Unity, existen tres formas principales de comunicar este tipo de información.
Las acciones remotas le permiten llamar a un método en su secuencia de comandos a través de la red. Puede hacer que el servidor llame métodos en todos los clientes o en clientes individualmente específicos. También puede hacer que los clientes invoquen métodos en el servidor. Al usar acciones remotas, puede pasar datos como parámetros a sus métodos de una manera muy similar a cómo llama a los métodos en proyectos locales (no multijugador).
Los callbacks en la red le permiten engancharse a los eventos integrados de Unity que ocurren durante el transcurso del juego, como cuando los jugadores se unen o se van, cuando se crean o se destruyen GameObjects, o cuando se carga una nueva escena. Hay dos tipos callbacks que puede implementar:
Callbacks del Network manager, para los callbacks relacionados con el network manager mismo (como cuando los clientes se conectan o desconectan)
Callbacks de comportamiento de la red, para los callbacks relacionados con GameObjects en red individuales (como cuando se llama a su función de Inicio, o lo que este GameObject particular debería hacer si un nuevo jugador se une al juego)
Mensajes de red son un enfoque de “nivel inferior” para enviar mensajes (aunque todavía se clasifican como parte de la red “API de alto nivel”). Le permite enviar datos directamente entre los clientes y el servidor utilizando scripts. Puede enviar tipos de datos básicos (int, cadena, etc.), así como los tipos de Unity más comunes (como Vector3). Puesto que usted mismo lo implementa, estos mensajes no están asociados directamente con ningún evento GameObjects o Unity en particular, ¡depende de usted decidir su propósito e implementarlos!