Page 1 sur 1

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

Publié : 06 Avr 2019 15:07
par DimB
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

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

Publié : 06 Avr 2019 15:45
par DimB
: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

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

Publié : 06 Avr 2019 16:58
par Max
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.

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

Publié : 09 Avr 2019 10:51
par DimB
ha oui j'avais oublié les tags! Merci. Vu la situation c'est peu être la solution la plus efficace merci!