Je voulais créer un petit en réseau avec Unity, mais je me heurte dès le départ à un problème.
J'ai deux scènes : "Loby" et "Game".
Lorsqu'on lance le jeu, on est sur la scène "Loby". Dans cette scène, il y à un champ de texte pour entrer l'adresse IP, et deux boutons (un pour se connecter au serveur avec ladite adresse IP), l'autre pour créer un serveur.
J'ai donc ce code (je ne met que la partie la plus importante).
Code : Tout sélectionner
private void ClickBtn(string btn)
{
if (btn == "Join")
{
Network.Connect(uiIPField.text, port);
Application.LoadLevel("Game");
}
else if (btn == "Host")
{
Network.InitializeServer(2, port, false);
Application.LoadLevel("Game");
}
}
Lorsque je lance le jeu une première fois et que je créer un serveur, et bien le serveur est bien créer, et je suis dans la scnène "Game". Dans cette scène, je créer un GameObject "Player" (qui à un NetworkView).
Ensuite, je lance le jeu une seconde fois, et je clique sur "Rejoindre". Je suis aussi dans la scène "Game", et le personnage est aussi créer.
Problème : Avec la fenêtre deux du jeu (lorsque j'ai lancé le jeu pour la deuxième fois) je ne vois pas le joueur n°1.
Pourtant, je vois bien le joueur n°2 avec la première fenêtre du jeu.
En gros, lorsque je me connecte à un serveur, et bien tout les GameObject qui ont été créer (des GameObject avec NetworkView et créer avec Network.Instantiate()) avant la connexion ne sont pas pris en compte, et donc ne sont pas créer.
J'ai réussi à résoudre le problème en mettant tout le contenu de la scène "Loby" dans "Game", mais bon, j'aimerais bien séparer les deux scnènes pour plus de clarté.
Je voulais donc savoir comment passer d'une scène à l'autre, mais en réseau (donc en résolvant le problème posé plus haut).
Si quelqu'un à une idée, je suis preneur !
Merci !