Page 2 sur 3
Re: [DB-AL]Properties Long cLick
Publié : 28 Fév 2019 16:32
par 1300vrtical
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);
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?)
Re: [DB-AL]Properties Long cLick
Publié : 28 Fév 2019 19:09
par Max
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
Re: [DB-AL]Properties Long cLick
Publié : 28 Fév 2019 19:13
par 1300vrtical
Pardon
, Pardon
,
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
Re: [DB-AL]Properties Long cLick
Publié : 28 Fév 2019 19:25
par Max
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
Re: [DB-AL]Properties Long cLick
Publié : 28 Fév 2019 20:08
par 1300vrtical
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...
Re: [DB-AL]Properties Long cLick
Publié : 28 Fév 2019 21:01
par Max
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.
Re: [DB-AL]Properties Long cLick
Publié : 01 Mars 2019 13:55
par 1300vrtical
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 pour votre aide
1300vrtical
Re: [DB-AL]Properties Long cLick
Publié : 01 Mars 2019 13:59
par Max
Salut,
C'est normal. Quand tu écris ceci:
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>();
}
Re: [DB-AL]Properties Long cLick
Publié : 02 Mars 2019 11:55
par 1300vrtical
Merci
, ça marche bien et en plus j'en apprends plus sur le scripting!
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.
Re: [DB-AL]Properties Long cLick
Publié : 02 Mars 2019 12:09
par Max
Bonjour,
1300vrtical a écrit : ↑02 Mars 2019 11:55
... et en plus j'en apprends plus sur le scripting!
...
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).