[RESOLU][DB - AL]Pouvoir appliquer une chose pour chaque objet ayant respecté la conditions.

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
oyé
Messages : 4
Inscription : 04 Mars 2018 12:11

[RESOLU][DB - AL]Pouvoir appliquer une chose pour chaque objet ayant respecté la conditions.

Message par oyé » 04 Mars 2018 12:28

Bonjour ,Bonjour depuis un LONG moment je bloque sur ce problème je m'explique j'ai une GameObject avec comme enfant des zombies qui spawn la nuit.
un autre gameobject qui a comme enfant également des survivants que l'ont peux sélectionné pour leurs dirent d'aller a tel endroit ect..
ensuite j'ai voulu rajouté un bouton "Bucheron" pour que quand je clique dessus en ayant sélectionné un survivant ou des survivants quelquonque s'ils remplissent justement la conditions qu'ils soient sélectionné alors .....

Code : Tout sélectionner

 using System.Collections;
 using System.Collections.Generic;
 using UnityEngine;
 using UnityEngine.AI;
 
 public class Jobs : MonoBehaviour {
     
     
     public GameObject ennemiesGO;
     public Transform survivantGO;
     public bool clickLumberJack = false;
 
 
     // Use this for initialization
     void Start () {
         
     }
     
     // Update is called once per frame
     void Update () {
 
         
     }
      
 
    public void ClickOnLumberJack()
     {
         Select GOSelect = GetComponentInChildren<Select>();
         ennemies ennemiBlu = ennemiesGO.GetComponent<ennemies>();
 
         foreach (Transform child in survivantGO )
         {
             
             if (GOSelect.selectToggle == true)
             {
                 Debug.Log("chalut !");
             }
         }

 
 
     }
     
 }

Voici mon script que j'ai assigner au parent de tout les survivants , sauf qu'il ne vérifie que le premier enfant et pas les autres..

Merci d'avance (en ayant j'espère bien expliqué :super: )
.
 ! Message de : Max
Utilisez les balises code SVP, et attention à la section où vous postez.
Merci de lire la Netiquette.

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

Re: Pouvoir appliquer une chose pour chaque objet ayant respecté la conditions.

Message par Max » 04 Mars 2018 12:48

Bonjour,

Dans ton code, si j'ai bien lu, tu récupères un component "Select" (GOSelect) sur le premier enfant trouvé qui le possède (instruction GetComponentInChildren).
Si tous les childs de ton GameObject possèdent un composant "Select", cela sera donc sur le premier child que cela sera récupéré.
En suite, tu pars dans une boucle où tu parcours les enfants de "survivantGO", mais tu fais ton test uniquement sur GOSelect (qui est très probablement, comme souligné plus haut, pris sur le premier enfant), et tu ne fais aucun test sur les childs balayés. En gros ta boucle ne sert à rien en l'état.
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

oyé
Messages : 4
Inscription : 04 Mars 2018 12:11

Re: [DB - AL]Pouvoir appliquer une chose pour chaque objet ayant respecté la conditions.

Message par oyé » 04 Mars 2018 12:59

Et comment je pourrais vérifier chaque component de chaque enfant?

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

Re: [DB - AL]Pouvoir appliquer une chose pour chaque objet ayant respecté la conditions.

Message par Max » 04 Mars 2018 13:14

oyé a écrit :
04 Mars 2018 12:59
Et comment je pourrais vérifier chaque component de chaque enfant?
Si tu cherches à tester l'état selectToggle du component "Select" de chaque child, cela devrait plutôt resembler à quelque chose comme cela:

Code : Tout sélectionner

        foreach (Transform child in survivantGO)
        {
            if (child.GetComponent<Select>().selectToggle == true)
            {
                Debug.Log("chalut !");
            }
        }
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

oyé
Messages : 4
Inscription : 04 Mars 2018 12:11

Re: [DB - AL]Pouvoir appliquer une chose pour chaque objet ayant respecté la conditions.

Message par oyé » 04 Mars 2018 13:19

Max a écrit :
04 Mars 2018 13:14
oyé a écrit :
04 Mars 2018 12:59
Et comment je pourrais vérifier chaque component de chaque enfant?
Si tu cherches à tester l'état selectToggle du component "Select" de chaque child, cela devrait plutôt resembler à quelque chose comme cela:

Code : Tout sélectionner

        foreach (Transform child in survivantGO)
        {
            if (child.GetComponent<Select>().selectToggle == true)
            {
                Debug.Log("chalut !");
            }
        }

D'accord je viens de comprendre mon erreur :triste1: Merci de m'avoir aidé ! :super:

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

Re: [DB - AL]Pouvoir appliquer une chose pour chaque objet ayant respecté la conditions.

Message par Max » 04 Mars 2018 13:24

pas de soucis ;)
si c'est ok, c'est bien de passer ton sujet en [RESOLU] (édition du titre du message initial).
Je l'ai fait pour cette fois.
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

oyé
Messages : 4
Inscription : 04 Mars 2018 12:11

Re: [DB - AL]Pouvoir appliquer une chose pour chaque objet ayant respecté la conditions.

Message par oyé » 04 Mars 2018 13:57

Max a écrit :
04 Mars 2018 13:24
pas de soucis ;)
si c'est ok, c'est bien de passer ton sujet en [RESOLU] (édition du titre du message initial).
Je l'ai fait pour cette fois.
Oops je m'en souviendrais !

Répondre

Revenir vers « (C#) CSharp »