Para esta lección Tutorial sobre cómo hacer un videojuego de Unity multijugador en Unity 3D usando el complemento Photon 2, mediante el uso de ésta herramienta le enseñaremos cómo desconectar jugadores para el juego multijugador que hemos creado. Por otro lado también le mostraremos cómo manejar el evento de un jugador diferente que abandona el juego y finalmente hablaremos sobre la migración del host. Motivado a ésto la migración del host es cuando el cliente maestro se desconecta del juego y otro cliente maestro debe hacerse cargo de las conexiones.
Lo primero que haremos es abrir nuestro script C # de configuración del juego en este script, crearemos una función de desconexión pública que luego podamos vincular a un botón de la interfaz de usuario. Esta función desconectará nuestro reproductor y luego nos regresará a la escena del menú principal. Si seguiste el video, ahora deberías tener un juego completamente en funcionamiento que permita al jugador conectarse y desconectarse a una sala de un juego multijugador cuando más lo desees.
AvatarSetup
using Photon.Pun;
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class AvatarSetup : MonoBehaviour
{
private PhotonView PV;
public GameObject myCharacter;
public int characterValue;
// Start is called before the first frame update
void Start()
{
PV = GetComponent<PhotonView>();
if (PV.IsMine)
{
PV.RPC("RPC_AddCharacter", RpcTarget.AllBuffered, PlayerInfo.PI.mySelectedCharacter);
}
}
[PunRPC]
void RPC_AddCharacter(int whichCharacter)
{
characterValue = whichCharacter;
myCharacter = Instantiate(PlayerInfo.PI.allCharacters[whichCharacter], transform.position, transform.rotation, transform);
}
}
MenuController
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class MenuController : MonoBehaviour
{
public void OnClickCharacterPick(int whichCharacter)
{
if (PlayerInfo.PI != null)
{
PlayerInfo.PI.mySelectedCharacter = whichCharacter;
PlayerPrefs.SetInt("MyCharacter", whichCharacter);
}
}
}
PlayerInfo
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerInfo : MonoBehaviour
{
public static PlayerInfo PI;
public int mySelectedCharacter;
public GameObject[] allCharacters;
private void OnEnable()
{
if (PlayerInfo.PI == null)
{
PlayerInfo.PI = this;
}
else
{
if (PlayerInfo.PI != this)
{
Destroy(PlayerInfo.PI.gameObject);
PlayerInfo.PI = this;
}
}
DontDestroyOnLoad(this.gameObject);
}
// Start is called before the first frame update
void Start()
{
if (PlayerPrefs.HasKey("MyCharacter"))
{
mySelectedCharacter = PlayerPrefs.GetInt("MyCharacter");
}
else
{
mySelectedCharacter = 0;
PlayerPrefs.SetInt("MyCharacter",mySelectedCharacter);
}
}
}

¿Quieres publicar tus propios proyectos?. ¡Pues que esperas!
ZoeGeop Technologies
MarketPlace
Crea tu cuenta
Suscríbete
[latest-selected-content output=»slider» limit=»4″ date_limit=»1″ date_start=»2″ date_start_type=»months» image=»medium» css=»four-columns tall as-overlay light» type=»post» status=»publish» taxonomy=»category» orderby=»dateD» show_extra=»category» slidermode=»fade» slideslides=»1″ slidescroll=»1″ sliderinfinite=»true» slidercontrols=»true» sliderauto=»true» sliderspeed=»3000″ chrlimit=»120″ url=»yes»]
Suscríbete a nuestro canal de YouTube
Síguenos en nuestro canal de YouTube dedicado a tecnología, marketplace de proyectos tecnológicos, cursos online y tutoriales de desarrollo de videojuegos. Ofrecemos consultoría en desarrollo de software, marketing online, servicios de TI, hosting web, dominios web y más.
Siguenos en Patreon
Si quieres contribuir con cualquier aporte o donación hacia nuestros proyectos y el canal puedes hacerlo a través de nuestra cuenta en Patreon.



