Bonjour tout le monde.
Je ne comprends pas pourquoi que je crée et que je détruit une instance d’un Prefab avec Void Update(). Ça fonctionne sans problème. A savoir l’objet est instancié et détruit autant de fois que nécéssaire.
Par contre quand je passe le même script par void OnMouseDown() ça ne fonctionne qu’une seule fois au premier clic, au second clic le programme affiche une erreur “The object of type GameObject has been destroyed but you are still trying to accès it.”
Je comprend bien que l’objet est détruit (y compris dans l’inspector) pourtant, le GameObject est un préfab. Quelqu'un peut il m'expliquer ? Merci.
[RESOLU][DB-AL] Problème sur les instances d’objet
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
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
-
- Messages : 27
- Inscription : 16 Oct 2018 23:14
[RESOLU][DB-AL] Problème sur les instances d’objet
Dernière édition par SidCamelot le 29 Oct 2018 22:18, édité 2 fois.
Re: [DB-AL] Problème sur les instances d’objet
Faut que tu nous montre du code (celui qui marche et celui qui marche pas)
-
- Messages : 27
- Inscription : 16 Oct 2018 23:14
Re: [DB-AL] Problème sur les instances d’objet
En fait c'est le même script. quand je le met comme ça :
ca marche sans problème. Mais si je veux faire la même chose mais déclenché par un clic de souris :
ça marche au premier clic (mon GameObject est instancié et détruit dans la foulée) mais aux deuxième clic j'ai le message d'erreur.
Code : Tout sélectionner
void Update()
{
varObjBullet = Instantiate(varObjBullet, transform.position, transform.rotation);
Destroy(varObjBullet, 0.1f);
}
Code : Tout sélectionner
void OnMouseDown()
{
varObjBullet = Instantiate(varObjBullet, transform.position, transform.rotation);
Destroy(varObjBullet, 0.1f);
}
Re: [DB-AL] Problème sur les instances d’objet
Il ne faut pas que tu nome l'objet que tu instanciate comme l'objet "modèle". Dans ton exemple ça donne :
Quand il y a conflit comme ça (même nom pour le modèle et la copie), des fois ça marche ou pas, pour être sûr que ça marche il faut être rigoureux et bien différencier ce qui doit l'être.
Et puis du coup il faut déclarer le varObjBulletInstance évidement (soit avec les autres variable en début de script soit en ajoutant GameObject devant la première ligne)
Code : Tout sélectionner
varObjBulletInstance = Instantiate(varObjBullet, transform.position, transform.rotation);
Destroy(varObjBulletInstance, 0.1f);
Et puis du coup il faut déclarer le varObjBulletInstance évidement (soit avec les autres variable en début de script soit en ajoutant GameObject devant la première ligne)
-
- Messages : 27
- Inscription : 16 Oct 2018 23:14
Re: [DB-AL] Problème sur les instances d’objet
C'est parfait !
Un grand merci
Un grand merci