Faire un jeu multijoueur

Bonjour à tous, dans ce tutoriel je vais vous expliquer comment créer un jeu multijoueur en local avec Unity 5. Pour cela, ouvrez votre projet.

Sur votre joueur intitulé Player (First Player Controller ou Third Person Controller), vous devrez ajoutez une Network View. pour cela faites

Add Component ==> Network View

Unity Online tuto

Il faut remplir les champs comme ceci:

State Synchronisation: Reliable Delta Compressed

Observed: Player (Transform)

Comme ceci:

Unity Online tuto

Maintenant, vous devrez créer deux scripts javascript intitulés script1.js et script2.js à la racine de votre projet et les ajouter à votre Player.

Dans le fichier script1.js, on va écrire ceci:

var playerPrefab : GameObject;
var spawnObject : Transform;

var gameName : String = « level »;
private var refreshing : boolean = false;
private var hostData : HostData[];

function OnGUI () {

var time: int;

GUI.Label(new Rect(10,10,250,100), « Score:  » + Time.time);

if(!Network.isClient && !Network.isServer) {

if (GUI.Button(Rect(Screen.width/2,Screen.height/2,100,20), »Démarrer Serveur »)) {

startServer();
}

if (GUI.Button(Rect(Screen.width/2,Screen.height/2 + 30,100,20), »Rafraichir »)) {
Debug.Log(« Refresh »);
refreshHostList();
}
if(hostData) {

for(var i:int = 0; i<hostData.length; i++) {

if(GUI.Button(Rect(Screen.width/2,Screen.height/2 + 60,100,20),hostData[i].gameName)) {
Network.Connect(hostData[i]);

}

}

}

}

}

function Update () {

if(refreshing) {
if(MasterServer.PollHostList().Length > 0) {
refreshing = false;
Debug.Log(MasterServer.PollHostList().Length);
hostData = MasterServer.PollHostList();

}

}

}

function startServer () {

Network.InitializeServer(32,25003, !Network.HavePublicAddress);
MasterServer.RegisterHost(gameName, « Rejoindre »,  » this is a tutorial »);

}

function OnServerInitialized () {

Debug.Log(« server initialized »);
spawnPlayer();

}

function OnConnectedToServer () {

spawnPlayer();

}

function spawnPlayer () {

Network.Instantiate(playerPrefab, spawnObject.position, Quaternion.identity, 0);

}

function OnMasterServerEvent(mse:MasterServerEvent) {

if(mse == MasterServerEvent.RegistrationSucceeded) {
Debug.Log(« Registered Server »);

}

}

function refreshHostList () {

MasterServer.RequestHostList(gameName);
refreshing = true;

}

Dans le fichier script2.js, on va écrire ceci:

 

function Awake() {

if (!GetComponent.<NetworkView>().isMine){ GetComponentInChildren(Camera).enabled = false;
// disable the camera of the non-owned Player;
GetComponentInChildren(AudioListener).enabled = false;

// Disables AudioListener of non-owned Player – prevents multiple AudioListeners from being present in scene.
GetComponentInChildren(MouseLook).enabled = false; GetComponentInChildren(FPSInputController).enabled = false;
}
}

 

Revenons à nos moutons.

Ajoutez un objet vide sur la scène appelé spawnObject

Dans votre Player, allez voir script1.js et assignez les propriétés suivantes.

Player Prefab: Player

Spawn Object: spawnObject (transform)

Game Name: mettez ce que vous voulez

 

Lancez votre jeu, normalement vous pourrez soit créer un serveur en faisant

Create Server

Soit rejoindre un serveur déjà existant sur le meme réseau en faisant

Refresh Hosts ==> Tutorial Game

 

Et voilà notre beau résultat :)

Tuto Unity Online

1 Commentaire

  1. Pomy

    Bonsoir
    Pour moi cela ne marche pas j’ai copier collez rien
    J’ai tout tapez et toujours des erreurs pour la ligne GUI.Label….
    Je ne sais pas de ou ça vient. Pourriez-vous m’aidez ?

    Répondre

Répondre à Pomy Annuler la réponse.

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Lire les articles précédents :
Télécharger Unity

Envie de créer vos propres jeux avec le logiciel Unity ? Envie de créer les jeux de vos rêves ? Parfait...

Fermer