Kill tous les ennemis avec tag "..." sauf...

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
Avatar de l’utilisateur
Dragonic
Messages : 116
Inscription : 18 Avr 2014 10:11
Localisation : Somewhere in my voxel World !!!

Re: Kill tous les ennemis avec tag "..." sauf...

Message par Dragonic » 24 Fév 2015 17:51

Donc, si je décide de faire

Code : Tout sélectionner

GameObject[] gameObjects;

 void DestroyAllObjects()
 {
      gameObjects = GameObject.FindGameObjectsWithTag ("Ennemi");
     
     for(var i = 0 ; i < gameObjects.Length ; i ++)
     {
         Destroy(gameObjects[i]);
     }
 }

Je vais détruire tous les GameObject avec le tag "Ennemi" mais aussi ceux qui permettent d'en faire d'autre et donc, Le jeux ne pourra pas continuer.
Juste au passage puisque ce n'a pas été dit :

Le "GameObject.FindGameObjectsWithTag", comme toutes les autres fonctions de type Find, ne retournent que les objets actifs. Tu peux donc très bien garder tes GOs Ennemi de base que tu clones en les désactivant par défaut, et en activant le clone après instanciation ! Dans ce cas le code plus haut ne retournera que les ennemis clonés, mais pas le GO sur lequel se base ces clones !

Ou même tu peux mettre ton GO ennemi sur lequel tu te bases en enfant d'un autre GO vide que tu désactives, et tu laisse ton GO ennemi actif, comme ça pas besoin d'activer le GO cloné une fois instancié ! Le GO de base étant actif mais désactivé du fait de son parent le Find ne le retournera pas non plus !
Image

mister-cookie
Messages : 21
Inscription : 10 Fév 2015 20:53

Re: Kill tous les ennemis avec tag "..." sauf...

Message par mister-cookie » 25 Fév 2015 05:03

Dragonic a écrit :
Donc, si je décide de faire

Code : Tout sélectionner

GameObject[] gameObjects;

 void DestroyAllObjects()
 {
      gameObjects = GameObject.FindGameObjectsWithTag ("Ennemi");
     
     for(var i = 0 ; i < gameObjects.Length ; i ++)
     {
         Destroy(gameObjects[i]);
     }
 }

Je vais détruire tous les GameObject avec le tag "Ennemi" mais aussi ceux qui permettent d'en faire d'autre et donc, Le jeux ne pourra pas continuer.
Juste au passage puisque ce n'a pas été dit :

Le "GameObject.FindGameObjectsWithTag", comme toutes les autres fonctions de type Find, ne retournent que les objets actifs. Tu peux donc très bien garder tes GOs Ennemi de base que tu clones en les désactivant par défaut, et en activant le clone après instanciation ! Dans ce cas le code plus haut ne retournera que les ennemis clonés, mais pas le GO sur lequel se base ces clones !

Ou même tu peux mettre ton GO ennemi sur lequel tu te bases en enfant d'un autre GO vide que tu désactives, et tu laisse ton GO ennemi actif, comme ça pas besoin d'activer le GO cloné une fois instancié ! Le GO de base étant actif mais désactivé du fait de son parent le Find ne le retournera pas non plus !

Ahh, pas mal !

J'en prendrai compte si par la suite j'ai besoin de faire une manœuvre dans ce genre ;)



D'ailleur, maintenant, je suis tombé sur un autre problème dans le même genre que les autres mais plus compliquer

donc, je pars du gameobject : Panel

Depuis panel, plus précisément du script Teslaa
panel.PNG
panel.PNG (32.46 Kio) Consulté 2860 fois
J'ai envie d'aller dans le gameobject ButtonBonus ( Script OnMouseDownBonus)
ButtonBonus.jpg
ButtonBonus.jpg (75.96 Kio) Consulté 2860 fois

Dans le Script OnMouseDownBonus j'ai envie que la variable Bonus soit "combler" par le gameobject Tesla qui se trouve comme enfant de Bird
Birdd.PNG
Birdd.PNG (3.29 Kio) Consulté 2860 fois

J'ai testé el clasico, mais ça na pas fonctionner :(

Code : Tout sélectionner

public GameObject Bonuuss;
	
	void Awake () {
	
	
		Bonuuss.transform.GetComponent<OnMouseDown_Bonus> ().Bonus = GameObject.Find ("Tesla");
	}
}


En espérant qu'en ayant rajouter des couleurs, cela à aider à la compréhension :D
Application
Jump Over : https://play.google.com/store/apps/deta ... umpOverCar
Car

Discussion
Jump Over : viewtopic.php?f=12&t=9962
Car

Avatar de l’utilisateur
Dragonic
Messages : 116
Inscription : 18 Avr 2014 10:11
Localisation : Somewhere in my voxel World !!!

Re: Kill tous les ennemis avec tag "..." sauf...

Message par Dragonic » 25 Fév 2015 10:14

C'est moi ou ton GO Tesla est désactivé ?
Car dans ce cas, comme je l'ai dit juste avant, il ne sera pas trouvé par le Find ^^ !

Et tu ne peux pas mettre directement Tesla dans OnMouseDownBonus par l'inspector ?
Image

mister-cookie
Messages : 21
Inscription : 10 Fév 2015 20:53

Re: Kill tous les ennemis avec tag "..." sauf...

Message par mister-cookie » 25 Fév 2015 13:23

Dragonic a écrit :C'est moi ou ton GO Tesla est désactivé ?
Car dans ce cas, comme je l'ai dit juste avant, il ne sera pas trouvé par le Find ^^ !

Et tu ne peux pas mettre directement Tesla dans OnMouseDownBonus par l'inspector ?


Ah, oui mince ! :lol:

D'ailleurs, pour répondre à ta question, je ne peux pas vraiment car, " Panel " fait partis d'un des choix de bonus parmis un menu et donc, mon idée et que lorsque l'on clique sur Panel, le bonus qui est attribuer sera activer ( Tesla), si panel2 choisit = un autre bonus...ect Pis vu que tout se passe sur la même scène, Se sera plus facile ^^


Mais je pense que, je devrai mettre " Tesla.SetActive(true); " avant puis ensuite mettre le code un peux plus haut pis sa devrai jouer j'imagine :D
Application
Jump Over : https://play.google.com/store/apps/deta ... umpOverCar
Car

Discussion
Jump Over : viewtopic.php?f=12&t=9962
Car

Répondre

Revenir vers « (C#) CSharp »