[RESOLU] Suppression GameObjects

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
Phoenix
Messages : 30
Inscription : 03 Sep 2018 17:49

[RESOLU] Suppression GameObjects

Message par Phoenix » 26 Sep 2018 18:18

Bonjour,
je vous redemande de l'aide et je suis désoler de vous déranger pour ça. J'ai un script qui est sensé supprimer dans une variable GameObject[] des gameobject avec le tag "Fire". Mais quand j'appuis sur la touche que j'ai assigner tous les gameobject présent dans GameObject[] sont supprimer. Et je veux que les gameobject avec le tag "Fire" soit supprimer dans GameObject[]. Pouvez-vous m'aider ? Je vous met mon script ci-dessous.
Merci d'avance
Cordialement

Code : Tout sélectionner

public GameObject[] Spell1;


    public void Update()
    {

        if (Input.GetKeyDown("z"))
        {
            Spell1 = GameObject.FindGameObjectsWithTag("Fire");
            
            Destroy(GameObject.FindGameObjectWithTag("Fire"));
         
        }

    }

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

Re: Suppression GameObjects

Message par Max » 26 Sep 2018 18:45

Bonsoir,

Tu récupères les gameobjects avec le tag "Fire" dans Spell1[].
Pourquoi ne pas l'exploiter en suite ?
Donc tu parcours Spell1[], et tu supprimes les gameobjects un à un.
Quelque chose qui pourrait s"'écrire comme:

Code : Tout sélectionner

            Spell1 = GameObject.FindGameObjectsWithTag("Fire");
            if (Spell1.Length > 1)
            {   // Spell1 contient au moins un element
                for (int i = 0; i < Spell1.Length; i++)
                {
                    Destroy(Spell1[i]);
                }
            }
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

Phoenix
Messages : 30
Inscription : 03 Sep 2018 17:49

Re: Suppression GameObjects

Message par Phoenix » 27 Sep 2018 19:07

Bonsoir,
Non ce n'est pas du tout ce que je veux faire. Désolé je me suis mal exprimé. En faite je veux mettre différent Spell (gameobject) dans un "tableau" GameObject[] et le joueur doit choisir un spell globale comme Fire. S'il choisi Fire alors tous les spells qui n'ont pas le tag Fire dans GameObject[] sont supprimés.
J'espère être assez claire
Merci d'avance
Cordialement

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

Re: Suppression GameObjects

Message par Max » 27 Sep 2018 20:38

Bonsoir,

ben dans ce cas, tu parcours ton tableau de GameObject (spell), tu testes le tag de chaque élément, dès que tu as un tag différent de celui souhaité (comme "Fire"), tu supprime le GameObject.
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
Alesk
Messages : 2303
Inscription : 13 Mars 2012 09:09
Localisation : Bordeaux - France
Contact :

Re: Suppression GameObjects

Message par Alesk » 28 Sep 2018 11:12

C'est cracra de détruire des gameObjects... Jette un oeil du côté des techniques de "pooling".

https://unity3d.com/fr/learn/tutorials/ ... ct-pooling

Phoenix
Messages : 30
Inscription : 03 Sep 2018 17:49

Re: Suppression GameObjects

Message par Phoenix » 07 Oct 2018 19:12

Bonjour,
excusez-moi de mon absence. Merci encore pour vos réponses.
Alors, je ne sais plus si je vous l'ai déjà dit mais ce que je veux faire c'est :
- 1) le joueur choisi un type de spell quand il rentre pour la première fois dans le jeu (feu, eau...)
-2) eh bien c'est là que je suis bloqué. Je veux que si l'utilisateur choisi feu par exemple, une barre de sélection (1,2,3,4,56,7,8,9,0) soit programmé pour qu'il y est que des sorts de feu et non les autres.
Pouvez-vous me donner un exemple ?
Merci d'avance
Cordialement

Avatar de l’utilisateur
Liven
Messages : 268
Inscription : 30 Nov 2017 01:48

Re: Suppression GameObjects

Message par Liven » 07 Oct 2018 20:41

Une approche simple (oui je suis adepte des trucs simples même si c'est pas toujours très joli) :

En admettant que tu stocke tes spells dans un tableau genre le spell de ta touche 0 dans le [0] de ton tableau... Après la nature du tableau (Tableau de gameobject ou autre) c'est ta popote car là on touche au lancement des sorts alors que pour l'instant on est juste à la sélection de la "classe de sorts" en début de partie.

Je créerait un "int" (ou un enum pour être plus propre) pour déterminer la classe de sorcier qu'aura choisi le joueur (genre 0 si c'est un sorcier de feu, 1 sorcier glace...). Ce "int" sera à sauvegarder pour les parties suivantes.
Puis un tableau pour chacune de tes classes de sorts. Donc un tableau avec tout tes sorts de feu, un autre avec tes sorts de glace...
Enfin un tableau "Classe en cours" dans lequel je copierais (au moment du choix, ou au chargement d'une partie en cours) le contenu du tableau feu si c'est un sorcier feu...

Et après il y a juste à utiliser le tableau "classe de sorcier en cours" qui ne contiendra que les sorts qui t'intéresse.

Phoenix
Messages : 30
Inscription : 03 Sep 2018 17:49

Re: Suppression GameObjects

Message par Phoenix » 08 Oct 2018 18:07

Bonjour,
merci de vos réponses j'ai enfin put remédier à mon problème :super: . Cette conversation est maintenant terminée (enfin jusqu'à que j'ai un nouveau problème).
Merci encore
Cordialement

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

Re: Suppression GameObjects

Message par Max » 08 Oct 2018 18:19

Bonsoir,

Si ton soucis est réglé, passe ton sujet en résolu dans ce cas. Merci.
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 »