[RESOLU] [DB - AL] Creer une list de GameObject depuis le GameManager

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
DimB
Messages : 6
Inscription : 03 Avr 2019 18:14

[RESOLU] [DB - AL] Creer une list de GameObject depuis le GameManager

Message par DimB » 06 Avr 2019 15:07

Bonjour à tous.

Je suis débutant sur Unity et je bloque sur un problème qui je pense est extrêmement évident pour tout programmer avec un peu de bouteille :-D

J'ai une scène très simple avec une table et un téléphone :
Image

j'ai attaché un script "focusable" à la table et au téléphone.
et j'aimerai avoir une liste (ou array) dans le GameManager avec tout mes objets "focusables".

J'ai essayé un GetComponentsInParent mais il ne trouve rien (si je comprend bien c'est normal vu que le GameManager est à la racine)

j'ai essayer de faire un singleton de mon GameManager pour pouvoir y accéder depuis tous les scripts :

Code : Tout sélectionner

    
     public List<Focusable> focusables = new List<Focusable>();
    
    public static GameManager instance = null;

    
    void Awake()
    {
        if (instance == null)
            instance = this;

        else if (instance != this)
            Destroy(gameObject);

        
    }
    
et puis d'ajouter l'objet "focusable" dans la fonction start

Code : Tout sélectionner

   
   GameManager gM = GameManager.instance;
   
    void Start()
    {


        gM.focusables.Add(this);
    }
 
 
Mais là Unity me dis "NullReferenceException". Si je dis pas de bétise mon erreur est d'essayer de stocker la classe dans la liste et pas l'object. Vu qu'il n'y a pas de script qui instancie mes objects "focusables" je ne peux pas récupérer la référence de l'objet.

J'espère que j'ai été clair et je vous remercie d'avance de vos réponses.

Merci,
Dim
Dernière édition par DimB le 06 Avr 2019 15:46, édité 1 fois.

DimB
Messages : 6
Inscription : 03 Avr 2019 18:14

Re: [DB - AL] Creer une list de GameObject depuis le GameManager

Message par DimB » 06 Avr 2019 15:45

:facepalm: ok trouvé.
J'ai déclaré l'instance du GameManager en dehors de la fonction start.

C'était pourtant simple. Du coup tout marche :-D

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

Re: [RESOLU] [DB - AL] Creer une list de GameObject depuis le GameManager

Message par Max » 06 Avr 2019 16:58

Auto réponse, parfait :mrgreen:

Après, pour parler de méthode, tu peux aussi passer par les Tags. Tu tagues les objets souhaités dans ta scène (donc avec un tag nommé focusables), et pour tous les récupérer, il suffit de passer par un FindGameObjectsWithTag.
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

DimB
Messages : 6
Inscription : 03 Avr 2019 18:14

Re: [RESOLU] [DB - AL] Creer une list de GameObject depuis le GameManager

Message par DimB » 09 Avr 2019 10:51

ha oui j'avais oublié les tags! Merci. Vu la situation c'est peu être la solution la plus efficace merci!

Répondre

Revenir vers « (C#) CSharp »