[RESOLU][DB-AL]Properties Long cLick (appel de variable)

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
Avatar de l’utilisateur
1300vrtical
Messages : 54
Inscription : 17 Nov 2018 17:02
Localisation : Bordeaux

Re: [DB-AL]Properties Long cLick

Message par 1300vrtical » 28 Fév 2019 16:32

C'est super étrange, c'est toujours la même erreur. Cette ligne est toujours source de problème:

Code : Tout sélectionner

Debug.Log(variable_Type_Fichier_Pour_Acceder_Au_Fichier_A.un_Int_Accessible_Depuis_LExterieur_Ficher_A);
:snif:
Assets\OBJ\Perso.cs(47,66): error CS1061: 'KLongClick' does not contain a definition for 'un_Int_Accessible_Depuis_LExterieur_Ficher_A' and no accessible extension method 'un_Int_Accessible_Depuis_LExterieur_Ficher_A' accepting a first argument of type 'KLongClick' could be found (are you missing a using directive or an assembly reference?)
:pleur4:
"Internet à toutes les réponses, encore faut-il poser les bonnes questions!" :merci:
Voici mon super projet: FLANERIE

Avatar de l’utilisateur
Max
Messages : 8765
Inscription : 30 Juil 2011 13:57
Contact :

Re: [DB-AL]Properties Long cLick

Message par Max » 28 Fév 2019 19:09

Salut,

reposte tes deux codes, car il là, ligne 49, même si tu la donnes, comme c'est hors contexte, il est difficile d'en dire plus...
Pis utilisez des noms encore plus long, c'est tellement lisible :mrgreen:
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Avatar de l’utilisateur
1300vrtical
Messages : 54
Inscription : 17 Nov 2018 17:02
Localisation : Bordeaux

Re: [DB-AL]Properties Long cLick

Message par 1300vrtical » 28 Fév 2019 19:13

Pardon :gene: , Pardon :gene2: ,
ScriptA:

Code : Tout sélectionner

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Perso : MonoBehaviour
{
 
// Declaration d'une variable de type fichier/script
public KLongClick variable_Type_Fichier_Pour_Acceder_Au_Fichier_A;

 void Start()
 {
 	//Initialisation de la variable de type fichier/script.
 	 variable_Type_Fichier_Pour_Acceder_Au_Fichier_A = GetComponent<KLongClick>();
 }

   //  Update is called once per frame  // 
   void Update()
   {
       // Acces à la variable de type Int du fichier A
       Debug.Log(variable_Type_Fichier_Pour_Acceder_Au_Fichier_A.un_Int_Accessible_Depuis_LExterieur_Ficher_A);
   }
}

ScriptB

Code : Tout sélectionner

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class KLongClick : MonoBehaviour
{
       public int un_Int_Accessible_Depuis_LExterieur_Ficher_A;

#region properties
#endregion
#region Method
    void Start()
    {
        un_Int_Accessible_Depuis_LExterieur_Ficher_A = 1;
    }
    private void Update()
   {
      un_Int_Accessible_Depuis_LExterieur_Ficher_A ++;
      if (un_Int_Accessible_Depuis_LExterieur_Ficher_A  > 1000) un_Int_Accessible_Depuis_LExterieur_Ficher_A  = 1;
   }
}   
#endregion


"Internet à toutes les réponses, encore faut-il poser les bonnes questions!" :merci:
Voici mon super projet: FLANERIE

Avatar de l’utilisateur
Max
Messages : 8765
Inscription : 30 Juil 2011 13:57
Contact :

Re: [DB-AL]Properties Long cLick

Message par Max » 28 Fév 2019 19:25

Etrange, les script que tu liste semble ok.
Par contre, je ne comprend pas trop, le message d'erreur donne la ligne 49 de Perso.cs, alors que celui que tu fournis au dessus en comporte guère plus d'un vingtaine :-/
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Avatar de l’utilisateur
1300vrtical
Messages : 54
Inscription : 17 Nov 2018 17:02
Localisation : Bordeaux

Re: [DB-AL]Properties Long cLick

Message par 1300vrtical » 28 Fév 2019 20:08

Oui, c'est parce que j'avais mon ancien code en commentaire au cas où (/* ancien code*/) histoire de ne pas tout perdre!
Du coups on n'as pas de piste...
"Internet à toutes les réponses, encore faut-il poser les bonnes questions!" :merci:
Voici mon super projet: FLANERIE

Avatar de l’utilisateur
Max
Messages : 8765
Inscription : 30 Juil 2011 13:57
Contact :

Re: [DB-AL]Properties Long cLick

Message par Max » 28 Fév 2019 21:01

Arf, je viens de capter.
Dans ton script Perso, ta variable de type KLongClick est publique, mais dans le Start tu fais un GetComponent, ce qui laisse penser que les deux scripts sont sur le même GO. Ou alors il faut virer le GetComponent et assigner le script via l'inspector.
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Avatar de l’utilisateur
1300vrtical
Messages : 54
Inscription : 17 Nov 2018 17:02
Localisation : Bordeaux

Re: [DB-AL]Properties Long cLick

Message par 1300vrtical » 01 Mars 2019 13:55

Bonjour,
J'y arrive pas, j'ai essayé de tout modifier avec cette recherche de component:

Code : Tout sélectionner

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Perso : MonoBehaviour
{
 
// Declaration d'une variable de type fichier/script
//public KLongClick variable_Type_Fichier_Pour_Acceder_Au_Fichier_A;

 void Start()
 {
 	//Initialisation de la variable de type fichier/script.
 	 //int variable_Type_Fichier_Pour_Acceder_Au_Fichier_A =  GameObject.Find("DirectionalLight").GetComponent(KLongClick).LongClick(); <-- cette ligne ci m'a servit à chercher le component dans un autre GO. 
   KLongClick KC = GetComponent<KLongClick>();
   
  
 }

   //  Update is called once per frame  // 
   void Update()
   {
       // Acces à la variable de type Int du fichier A
       Debug.Log(KC.un_Int_Accessible_Depuis_LExterieur_Ficher_A);
   }
}

Code : Tout sélectionner

Assets\OBJ\Perso.cs(49,18): error CS0103: The name 'KC' does not exist in the current context.

C'est ce qui bloque, je suppose, mais je ne comprends pas pourquoi. Tout est là pour que ça fonctionne. Je vais continuer mon projet en évitant les appels à variable...

:merci: Merci pour votre aide :merci:
1300vrtical
"Internet à toutes les réponses, encore faut-il poser les bonnes questions!" :merci:
Voici mon super projet: FLANERIE

Avatar de l’utilisateur
Max
Messages : 8765
Inscription : 30 Juil 2011 13:57
Contact :

Re: [DB-AL]Properties Long cLick

Message par Max » 01 Mars 2019 13:59

Salut,

C'est normal. Quand tu écris ceci:

Code : Tout sélectionner

void Start()
 {
   KLongClick KC = GetComponent<KLongClick>();
     
 }
ta variable KC est locale, et sa portée restera cantonné à la méthode Start().
Il faut qu'elle soit globale. Par exemple:

Code : Tout sélectionner

...
KLongClick KC;
...
void Start()
{
    KC = GetComponent<KLongClick>();
}
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Avatar de l’utilisateur
1300vrtical
Messages : 54
Inscription : 17 Nov 2018 17:02
Localisation : Bordeaux

Re: [DB-AL]Properties Long cLick

Message par 1300vrtical » 02 Mars 2019 11:55

:merci: Merci :amen: , ça marche bien et en plus j'en apprends plus sur le scripting! :super:

Mais j'ai l'impression de trébucher à chaque pas... à présent ça me renvoit le message suivant:

Code : Tout sélectionner

NullReferenceException: Object reference not set to an instance of an object.
Perso.Update () (at Assets/OBJ/Perso.cs:58)
Sur internet, j'ai trouvé cette solution, qui me semble un pansement pour que le jeu fonctionne sans pour autant résoudre le problème. ' if(KC != null)' ne sert qu'une seule fois pour mute le dysfonctionnement...
j'ai l'impression que 'KC.un_Int_Accessible_Depuis_LExterieur_Ficher_A' fonctionne à moitié, car lorsque je me trompe de type de variable, j'ai un message dans la console qui me rappelle à l'ordre, mais lorsque je veux savoir quelle variable c'est dans mon Debug.Log, il me renvoie: référence null… je ne sais pas sur quoi je bute dans le flou de mes connaissances en C#...

Merci encore pour votre aide et vos réponses infaillibles.
"Internet à toutes les réponses, encore faut-il poser les bonnes questions!" :merci:
Voici mon super projet: FLANERIE

Avatar de l’utilisateur
Max
Messages : 8765
Inscription : 30 Juil 2011 13:57
Contact :

Re: [DB-AL]Properties Long cLick

Message par Max » 02 Mars 2019 12:09

Bonjour,
1300vrtical a écrit :
02 Mars 2019 11:55
... et en plus j'en apprends plus sur le scripting! :super:
...
je ne sais pas sur quoi je bute dans le flou de mes connaissances en C#...
Je pense surtout que tu devrais prendre un peu de temps pour apprendre les bases, en C# comme pour Unity, et tu ne "trébucherais" pas, comme tu dis, sur ce genre de problématique très basique ;)

La ton soucis visiblement est que ta référence "KC" est null dans ton script Perso.cs. Donc elle n'est pas renseignée dans l'inspector au niveau du Component "Perso.cs", ou alors tu essais de la récupérer par le biais d'un GetComponent qui ne trouve ... rien. Le soucis se trouve là.
Le fait de tester KC pour savoir si c'est à null ou pas ne règle pas ton soucis. Il te permet juste de shunter certaines parties du code liée à l'emploi de cette référence si elle est à null (et donc d'éviter de générer des erreurs).
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Répondre

Revenir vers « (C#) CSharp »