Page 1 sur 1

[RESOLU][DB-AL] Réactiver un piége

Publié : 04 Mai 2019 18:39
par jetonpeche
Bonjour,
(Je suis débutant depuis quelques jours sur Unity 2019).

J'ai fait un script qui permet de supprimer le box collider d'un gameObjet quand on quitte une zone.

Cependant, je n'arrive pas à le faire reparaître après quelques secondes.

J'ai essayé des trucs avec les coroutines, les variables bool dans l'Update rien à faire.

Code : Tout sélectionner

public class PiegeTriggerExit : MonoBehaviour
{
    public GameObject plateforme;

    private void OnTriggerExit2D(Collider2D collision)
    {
       //Désactive la plateforme
        if (collision.gameObject.name == "Robot")
            plateforme.SetActive(false);
    }
}
Si quelqu'un à une solution je suis preneur car je ne voit plus comment faire.

Re: [DB-AL] Réactiver un piége

Publié : 04 Mai 2019 18:59
par Max
Hello,

Tu désactives le gameobject en fait visiblement.
L'idée de la coroutine paraissait bonne. Au moment où tu effectues ton plateforme.SetActive(false); tu lances une coroutine avec un WaitForSeconds qui au bout de la durée souhaitée, fera cette fois un plateforme.SetActive(true);

Re: [DB-AL] Réactiver un piége

Publié : 05 Mai 2019 18:08
par evereal
La coroutine est une bonne méthode
MAIS
Si le script est associé au gameobject que tu désactives, ses coroutines sont stoppées (ou supprimées, j'ai un doute).
Je te conseille donc d'avoir un script du style "PiegeManager" capable d'activer et de désactiver un piège et de le placer sur un gameobject vide.

Re: [DB-AL] Réactiver un piége

Publié : 11 Mai 2019 00:51
par jetonpeche
Merci de vos réponses sa ma aidée j'ai pu réarme mon piège. :-D