1. #1
    Futur Membre du Club
    Homme Profil pro
    Enseignant
    Inscrit en
    août 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2017
    Messages : 16
    Points : 6
    Points
    6

    Par défaut aide pour jeu en ligne

    Bonjour a tous .
    Je suis entrain de creer un petit jeu multijoueur en ligne . et j'ai reussi quelque étapes . j'ai configurer le player prefab et j'ai réussi à instancier un objet dans la scene grace à ca :

    Code csharp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        [Command]
        void Cmdbars()
        {
            GameObject bar = Instantiate(barH, GameObject.Find("pos1").GetComponent<Transform>().transform.position, Quaternion.identity) as GameObject;
            NetworkServer.Spawn(bar);
        }

    Maintenant je veux que si on clique sur cet objet son sprite change .
    pour ça jai utiliser cette methode :

    Code csharp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
        [Command]
        void Cmdclick()
        {
            if (Input.GetMouseButtonDown(0))
            {
                Vector2 origin = new Vector2(Camera.main.ScreenToWorldPoint(Input.mousePosition).x,
                                 Camera.main.ScreenToWorldPoint(Input.mousePosition).y);
                RaycastHit2D hit = Physics2D.Raycast(origin, Vector2.zero, 0f);
     
     
                if (hit && hit.transform.gameObject.tag.Equals("Untagged"))
                {
                    hit.transform.gameObject.GetComponent<SpriteRenderer>().sprite = blueBarre.GetComponent<SpriteRenderer>().sprite;
                    hit.transform.gameObject.tag = "ok";
     
                }
            }
        }

    Le problème c'est que le sprite change seulement en local et pas chez tous les joueurs .

  2. #2
    Membre habitué Avatar de yaraco
    Profil pro
    Ingénieur développement logiciels
    Inscrit en
    septembre 2010
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : septembre 2010
    Messages : 80
    Points : 128
    Points
    128

    Par défaut

    Réponse tardive mais sait-on jamais si ça peut t'être utile :

    "Command" permet d'exécuter une fonction sur le serveur. Tu l'appelle sur un client, mais c'est le serveur qui l'exécute.
    "ClientRpc" permet elle d'exécuter une fonction sur tous les clients (le serveur peut également être client).

    Tu va surement devoir faire une petite combinaison des deux pour appeler ta modification chez tous les clients :

    Command "demanderChangementSpriteAuServeur" à appeler depuis n'importe quelle client.

    et cette fonction fait elle même appel à un ClientRpc "appliquerChangementSpriteAuxClients".

    Je t'invite à lire la doc officielle en détail :
    https://docs.unity3d.com/ScriptRefer...Attribute.html
    https://docs.unity3d.com/ScriptRefer...Attribute.html

Discussions similaires

  1. Librairie C++ pour jeu en ligne
    Par jblecanard dans le forum C++
    Réponses: 5
    Dernier message: 13/04/2008, 15h05
  2. besoin d'aide pour jeu d'awalé
    Par Dabech dans le forum Débuter
    Réponses: 6
    Dernier message: 12/04/2008, 23h41
  3. Réponses: 2
    Dernier message: 12/12/2007, 14h53
  4. Recrute codeur php5 pour Jeu en Ligne
    Par theGioM dans le forum Projets
    Réponses: 5
    Dernier message: 12/07/2007, 00h15
  5. aide pour jeu de la bataille navale
    Par Jeannot Alpin dans le forum Delphi
    Réponses: 17
    Dernier message: 19/11/2006, 21h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo