Probleme copie d'un Gameobject

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
Valeze
Messages : 1
Inscription : 10 Août 2018 11:26

Probleme copie d'un Gameobject

Message par Valeze » 10 Août 2018 11:33

Salut ! j'ai un petit problème avec un script, en gros je fait un système de CTRL+Z / CTRL+Y pour un éditeur de map, et je doit copier un objet d'une liste à une autre et supprimer l'objet de la première liste tout en gardant une copie ( voici mon code ca expliquera mieux que moi) :

Code : Tout sélectionner

    private void RedoUndo()
    {
        if ((((Input.GetKey("right ctrl")) || (Input.GetKey("left ctrl"))) && (Input.GetKeyDown("z"))) || Input.GetKeyDown("j"))
        {
            if (idMapObject > 0)
            {
                GameObject _temp = objectToList[idMapObject - 1];
                listRedoObject.Add(tempRedo); // Save de l'objet pour redo
                idRedoMapObject += 1;
                Destroy(objectToList[idMapObject - 1]); // Detruit l'objet dans la scene
                objectToList.RemoveAt(idMapObject - 1); // Suprimme l'objet de la list
                idMapObject -= 1; // Revient a l'objet précédent
            }
        }
}
Donc je supprime bien mon objet de ma premiere liste (objectToList) mais ma copie de l'objet (_Temp) se supprime aussi (j'ai un missing GameObject dans la liste : listRedoObject)
Sa me parait tellement stupide, pourquoi je supprime le même objet, et comment rémédier à ca ?

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

Re: Probleme copie d'un Gameobject

Message par boubouk50 » 10 Août 2018 12:04

_Temp ne copie pas le gameObject, il le référence. Si tu supprimes la référence, tu supprimes le _Temp.
Le plus simple, serait de ne pas supprimer le gameObject, mais de le désactiver. Tu le supprimeras plus tard, si les actions changent (donc plus de Ctrl + Y)
"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 « Scripting »