[MY-RS] Unet Faire un Rpc a partir d'un non Player GameObject

Pour les scripts écrits en C#
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
shinian
Messages : 10
Inscription : 26 Fév 2017 09:06

[MY-RS] Unet Faire un Rpc a partir d'un non Player GameObject

Message par shinian » 06 Mai 2017 22:45

bonjour, j'essaye de faire executer des ClientRpc a partir d'un gameobject qui n'a pas de client authority et qui n'appartient a aucun client, mais rien ne fonctionne, par exemple avec un simple script de Debug.Log comme ci dessous rien ne s'affiche dans ma console

Code : Tout sélectionner

void Start () {
if(isServer)
        RpcTest();
       
	}  

    [ClientRpc]
    void RpcTest()
    {
        Debug.Log("test debug");
    }
:!: Les balises code SVP :!:
Merci de lire la Netiquette.

Avatar de l’utilisateur
evereal
Messages : 109
Inscription : 06 Nov 2015 18:46

Re: [MY-RS] Unet Faire un Rpc a partir d'un non Player GameObject

Message par evereal » 08 Mai 2017 11:07

Salut,

Ton GameObject doit être instancié via la méthode NetworkServer.Spawn(GameObject obj)
“La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !”

shinian
Messages : 10
Inscription : 26 Fév 2017 09:06

Re: [MY-RS] Unet Faire un Rpc a partir d'un non Player GameObject

Message par shinian » 08 Mai 2017 22:16

Déjà Grand Merci a toi pour tes réponses rapide, et oui c'est déjà le cas il a été instancié avec le NetworkServer.Spawn(GameObject obj), justement tout devrai fonctionner, pour info avec le network identity je n'ai rien cocher ni player authority ni server only.
Pourtant quand je synchronise une SyncVar, ma variable est bien rafraichie (voir code ci dessous)

Code : Tout sélectionner

[SyncVar]
public int testSyncVar = 0;
void Start () {
if(isServer)
        RpcTest();
       testSyncVar = 5;
   }  

    [ClientRpc]
    void RpcTest()
    {
        Debug.Log("test debug");
    }

Avatar de l’utilisateur
evereal
Messages : 109
Inscription : 06 Nov 2015 18:46

Re: [MY-RS] Unet Faire un Rpc a partir d'un non Player GameObject

Message par evereal » 09 Mai 2017 09:14

Je suppose que la fonction Start() est appelée trop tôt alors. Essaye de mettre un test dans l'update du genre

Code : Tout sélectionner

void Update() {
  if(Input.getKey("space"))
    RpcTest();
}
“La théorie, c'est quand on sait tout et que rien ne fonctionne. La pratique, c'est quand tout fonctionne et que personne ne sait pourquoi. Ici, nous avons réuni théorie et pratique : Rien ne fonctionne... et personne ne sait pourquoi !”

shinian
Messages : 10
Inscription : 26 Fév 2017 09:06

Re: [MY-RS] Unet Faire un Rpc a partir d'un non Player GameObject

Message par shinian » 10 Mai 2017 20:32

effectivement la méthode été appelée trop tôt, merci encore ^^

Répondre

Revenir vers « (C#) CSharp »