detruire les objets créer dans script dans un autre script

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
barby
Messages : 1
Inscription : 04 Mars 2017 23:08

detruire les objets créer dans script dans un autre script

Message par barby » 04 Mars 2017 23:28

Bonjour a tous,
Svp j'ai un problème j aimerai bien avoir accès aux objets que j 'ai crée dans un script et les detruires dans un autre script.
pour créer

Code : Tout sélectionner

using UnityEngine;
using System.Collections;

public class spawn : MonoBehaviour {

public GameObject objekt;

public GameObject cube;


// Update is called once per frame
void Update () {

if (Input.GetKeyDown("a"))
{


cube = Instantiate (objekt);
objekt.tag = "spawn";

}

}
pour détruire

Code : Tout sélectionner

using UnityEngine;
using System.Collections;

public class delete : MonoBehaviour {



public spawn obj;

GameObject [] oj;
// Use this for initialization
void Start () {

}

// Update is called once per frame
void Update () {

//objeKt = GameObject.FindGameObjectsWithTag ("spawn");



if (Input.GetKeyDown ("s")) {

obj = GameObject.FindGameObjectsWithTag ("spawn").GetComponent (spawn);



Destroy (obj.cube);

}
}
}
Merci d'avance

:!: Les balises code SVP :!:
Merci de lire la Netiquette.

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6221
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: detruire les objets créer dans script dans un autre script

Message par boubouk50 » 06 Mars 2017 10:45

Salut Barby,

Je vois plusieurs problèmes dans tes scripts. Notamment en terme de gestion de multiples instances. Il me faudrait un peu plus d'information pour t'aider à trouver la bonne solution. Je pourrais te corriger le script, mais je ne sais pas ce que tut cherches à faire exactement et pourrais donc me tromper dans l'approche.

Code : Tout sélectionner

cube = Instantiate (objekt);
objekt.tag = "spawn";
Par exemple, ici, qu'as-tu cherche à faire? L'instance précédente sera "perdue" par le script, et n'auras pas le tag "spawn" puisque mis sur objekt. As-tu besoin de garder un lien vers l'instance?

Code : Tout sélectionner

obj = GameObject.FindGameObjectsWithTag ("spawn").GetComponent (spawn);
Destroy (obj.cube);
Ici, tu récupères TOUS les gameObjects tagués spawn, tu ne peux donc pas récupérer un Component d'un tableau. Il faut faire une boucle pour chaque élément. C'est le gameObject objekt qui est tagué spawn pas cube.

Les comportements des deux scripts ne s'accordent pas, j'aimerais que tu nous dises exactement quel comportement souhaiterais-tu adopter pour mieux t'aider.
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Répondre

Revenir vers « (C#) CSharp »