Probleme sur les animations dans un jeu multijoueur 2D

Questions techniques liées à l’utilisation d'Unity (et n'entrant pas dans le cadre d'une des sections suivantes)
Tyliath
Messages : 8
Inscription : 09 Nov 2014 16:36

Probleme sur les animations dans un jeu multijoueur 2D

Message par Tyliath » 18 Août 2015 18:24

Bonjour,

Je suis entrain de créer un RPG 2D et j'ai tenté de faire un mode multijoueur , en regardant ce tuto la j'ai réussi a spawn de joueur différent sur un serveur mais problème au moment ou un joueur marche ,normalement sur l'écran du joueur l'animation se déclenche mais sur l'écran de l'autre joueur elle ne se déclenche pas.

Pour animer le personnage j'utilise un animator et j'ai fait en sorte que quand le joueur se déplace (c'est a dire quand il appuie sur q ou d grâce a cette ligne de code : float x = Input.GetAxis ("Horizontal"); ) l'animator du joueur le détecte (grâce a un paramètre dans l'animator que j'actualise grâce à cette ligne de code : anim.SetFloat("speed", Mathf.Abs (x)); ) et ensuite lance l'animation du personnage entrain de courir .

Si vous avait une solution ou quelquechose qui pourrait m'aider je vous en saurez très reconnaissant ,

merci .

Avatar de l’utilisateur
El Zombity
Messages : 21
Inscription : 15 Août 2015 17:21

Re: Probleme sur les animations dans un jeu multijoueur 2D

Message par El Zombity » 18 Août 2015 21:19

bonjour
j'ai rapidement regarder un peu Unet et j'ai vue un component appeler "Nerwork Animator"
il ne prend en paramètre que un component "animator" je pense que tu a juste a glissé "animator" dans la variable afficher

après je connais pas trop Unet donc regarde par toi même

Tyliath
Messages : 8
Inscription : 09 Nov 2014 16:36

Re: Probleme sur les animations dans un jeu multijoueur 2D

Message par Tyliath » 18 Août 2015 23:38

Je croispas que sa va m'aider a avancer car j'ai pas tiliser les nouveaux script que unity a mis en place au cours de la 5.1 j'ai fait juste un une page de script, tenez si ça peut vous aider :

Code : Tout sélectionner

using UnityEngine;
using System.Collections;

public class NetworkManager : MonoBehaviour {
	
	private const string typeName = "UniqueGameName";
	private const string gameName = "RoomName";
    private HostData[] hostList;
	public GameObject playerPrefab;


	private void SpawnPlayer()
	{
		Network.Instantiate(playerPrefab, new Vector2(0,0), Quaternion.identity, 0);
	}

	private void JoinServer(HostData hostData)   
	{
		Network.Connect(hostData);
		OnConnectedToServer ();
	}
	
	void OnConnectedToServer()
	{
		Debug.Log("Server Joined");
		SpawnPlayer();
	}
	
	private void RefreshHostList()
	{
		MasterServer.RequestHostList(typeName);
	}
	
	void OnMasterServerEvent(MasterServerEvent msEvent)
	{
		if (msEvent == MasterServerEvent.HostListReceived)

			hostList = MasterServer.PollHostList();
	}
	
	void OnServerInitialized()
	{

		if (Network.isClient && Network.isServer) {
			
			Debug.Log("Server Initializied");

		}


	}

	void OnGUI()
	{
		if (!Network.isClient && !Network.isServer)
		{
			if (GUI.Button(new Rect(100, 100, 250, 100), "Start Server"))
				StartServer();
			
			if (GUI.Button(new Rect(100, 250, 250, 100), "Refresh Hosts"))
				RefreshHostList();
			
			if (hostList != null)
			{
				for (int i = 0; i < hostList.Length; i++)
				{
					if (GUI.Button(new Rect(400, 100 + (110 * i), 300, 100), hostList[i].gameName))
						JoinServer(hostList[i]);

				}
			}
		}
	}
	
	private void StartServer()
	{
		Network.InitializeServer(4, 25000, !Network.HavePublicAddress());
		MasterServer.RegisterHost(typeName, gameName);
		OnServerInitialized ();
		SpawnPlayer();
	}
	
	void Start(){
		
	

	}
	
	void Update(){

		OnGUI ();
		
	}
	
	
}

Avatar de l’utilisateur
El Zombity
Messages : 21
Inscription : 15 Août 2015 17:21

Re: Probleme sur les animations dans un jeu multijoueur 2D

Message par El Zombity » 19 Août 2015 13:01

je pense que les commponent Unet fonction avec les scripte antérieur a la 5.1 , je n'ai jamais trop pousser de chaque coter
après il existe beaucoup de tuto comme celui ci : https://www.youtube.com/watch?v=R4DfeynA9KI

celui la a l'air de traiter le problème , il est un peu vieux donc il est possible que certaine chose est changer , mais L'API upgrade devrai faire son boulot :-D

Tyliath
Messages : 8
Inscription : 09 Nov 2014 16:36

Re: Probleme sur les animations dans un jeu multijoueur 2D

Message par Tyliath » 19 Août 2015 14:26

Encore une fois je ne peux résoudre a partir de ce tutoriel car son jeu est en 3D et dans son jeu il n'utilise pas des animations crées a partir de succession de sprite donc ce n'est pas le même processus.

Je tente de m'intéressé au nouveau systeme que Unity a mis en place dans le patch 5.1 mais je n'y suis pas encore habitué .

Je suis toujours ouvert a d'autre solution si vous en avait.

Avatar de l’utilisateur
El Zombity
Messages : 21
Inscription : 15 Août 2015 17:21

Re: Probleme sur les animations dans un jeu multijoueur 2D

Message par El Zombity » 19 Août 2015 15:54

là a ce stade je t'avouerai que je suis un peu cour d'idée , c'est une bonne idéé de regarder un peu Unet , ils existent beaucoup de tuto la dessue surtout en C#

bonne continuation

Tyliath
Messages : 8
Inscription : 09 Nov 2014 16:36

Re: Probleme sur les animations dans un jeu multijoueur 2D

Message par Tyliath » 19 Août 2015 16:19

Je vais tenter,
Merci encore pour ton aide ^^

Avatar de l’utilisateur
El Zombity
Messages : 21
Inscription : 15 Août 2015 17:21

Re: Probleme sur les animations dans un jeu multijoueur 2D

Message par El Zombity » 19 Août 2015 17:31

de rein :hello:

Tyliath
Messages : 8
Inscription : 09 Nov 2014 16:36

Re: Probleme sur les animations dans un jeu multijoueur 2D

Message par Tyliath » 19 Août 2015 21:30

Aprés avoir recherché un peu plus en profondeur j suis tombé sur ça viewtopic.php?f=2&t=10929 et après l'avoir appliqué sur mon jeu tous fonctionnait bien .

Si quelqu'un a le même problème et tombe sur ce sujet ,voila comment résoudre le problème :

-Créer un nouveau JavaScript que vous pouvez appeler PlayerRootController .

-Copier le ce code là :

Code : Tout sélectionner

#pragma strict

var anim : Animator ;

function Start () {

}

function Update () {

var x : float ;
 
if(GetComponent.<NetworkView>().isMine){

   x = Input.GetAxis("Horizontal"); //x est la donnée qui nous sert a déclencher les animations 
   GetComponent.<NetworkView>().RPC("SendFloat", RPCMode.AllBuffered, "speed", x);
   
  }
  
}

 @RPC
 
 function SendFloat(name:String, value:float){
 
  anim.SetFloat(name, Mathf.Abs(value));
  
 }
-Ensuite il ne reste plus qu'a mettre dans l'animatorController de votre personnage les conditions qui vous permettront de déclencher les animations du personnage, par exemple, j'ai mis en condition pour que l'animation de mon personnage entrain de marcher se délenche que le float speed c'est à dire l'input horizontale du joueur soit au dessus de 0.1

-Il ne reste plus qu'a ajouter un NetworkView et metre le script que l'on viens de créer dans la section "Observed"

Voila ^^

Avatar de l’utilisateur
El Zombity
Messages : 21
Inscription : 15 Août 2015 17:21

Re: Probleme sur les animations dans un jeu multijoueur 2D

Message par El Zombity » 19 Août 2015 22:01

le lien est celui du forum qui indique le lien de se même forum qui indique le lien de se même forum JE FAIT UNITY -----> boucle infine = je crash :-D

pour le network view je croie qui il y a un histoire ou il FAUT désactiver les scriptes non commun par exemple la gestion des mouvement , de l'arme , tout ce qui ne sert pas pour le réseau si non tout sera Sycro , en gros A bouge a gauche le personage de B lui bouge aussi a gauce et a la meme position que celui de A
ce souçons date de avant la version 5 de unity donc peut être c'est réglé

mais n'empêche sa fait bizarre à 14 ans de se faire vouvoyez :D

Répondre

Revenir vers « Unity le logiciel »