RPC avec un script désactivé.

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
panicq
Messages : 57
Inscription : 28 Août 2012 15:30

RPC avec un script désactivé.

Message par panicq » 25 Oct 2014 23:39

Bonjour,

Je me pose une petite question toute simple.

Quand on déclare une fonction [RPC] et que le script est désactivé (enabled == false), comment cela se fait que la méthode RPC puisse s’exécuter quand même ? Est-ce que les adresses des méthodes [RPC] sont marquées dans un endroit spéciale par l’interpréteur et elles ont des droits d'accès différents ? Car de manière général on ne peut accéder à un Script désactivé et ce script ne peut rien exécuter.

Dans ce cas DireBonjour() est appelée sur le server et le client :

Code : Tout sélectionner

void Start()
{
   if(networkView.isMine)
   {
      ...
    }else{

        //Empecher le script de s'executer dans le cas où il ne s'agit pas du joueur du client.
        enabled = false;
    }
}

void Update()
{
    networkView.RPC("DireBonjour", RPC.All);

}

[RPC]
void DireBonjour()
{

//APPELEE QUE LE SCRIPT SOIT ACTIVE OU NON
   Debug.Log("Bonjour. Ce script est activé = " + enabled);
}
Merci d'avance :)

@+

Avatar de l’utilisateur
Alesk
Messages : 2303
Inscription : 13 Mars 2012 09:09
Localisation : Bordeaux - France
Contact :

Re: RPC avec un script désactivé.

Message par Alesk » 25 Oct 2014 23:44

Salut,

De ma propre expérience, désactiver un script en mettant enabled = false empèche juste sa prise en compte dans la boucle principale d'unity, donc tous les events seront ignorés (pas d'update, ni de OnTrigger, etc...) par contre ça n'empêche en rien d'accéder à ses fonctions.

Si tu veux que plus rien ne soit réactif, il va peut être falloir enserrer le code de toutes tes fonctions

Code : Tout sélectionner

void Fonction(){
    if(enabled){
        //ton code
    }
}
là t'es sûr qu'il ne se passera plus rien si le script n'est pas actif ;)

panicq
Messages : 57
Inscription : 28 Août 2012 15:30

Re: RPC avec un script désactivé.

Message par panicq » 25 Oct 2014 23:49

Ok merci pour ta réponse, effectivement ça parait plus évident après expliquation.

Répondre

Revenir vers « Scripting »