[Resolu][Débutant-AL] Problème avec OnTriggerEnter

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
Akimania
Messages : 17
Inscription : 14 Jan 2017 07:39

[Resolu][Débutant-AL] Problème avec OnTriggerEnter

Message par Akimania » 17 Oct 2018 17:42

Bonjour,
j'essaye de faire détecter le Player quand il rentre dans le collider, mais voila le problème il y a le terrain en plusieurs morceaux je ne suis meme pas sur que le problème vient de la, et donc pour éviter de tout déclarer en C# je cherche une solution, voila un bout de code mais ne fonctionne pas ou plutôt il passe à True puis il bloque sur les false même si je suis bien à l’intérieur du collier.
j'ai même ajouté un tag et un layé pour éviter le terrain "si c'est de la qui vient le probleme" mais bon, je ne comprends pas le soucie.
le but est de pousser la voiture ou un objet mais pas envie de déclencher l’animation s'il n'est pas au bon endroit.
D'avance merci

Code : Tout sélectionner

public class playerController : MonoBehaviour
{
    public bool collided = false;
    public string TXTcollided;

Code : Tout sélectionner

void OnTriggerEnter(Collider collision)
    {
        collided = false;
        TXTcollided = "false";
        if (collision.gameObject.layer == 24 && collision.gameObject.tag == "Pushable")
        {
            collided = true;
            TXTcollided = "true";
        }
    }

Code : Tout sélectionner

void Update ()
	{
        if (collided & Input.GetKey(KeyCode.F))
        {
            animator.SetBool("Pushing", true);
Image
Dernière édition par Akimania le 17 Oct 2018 20:47, édité 2 fois.

djulio74
Messages : 682
Inscription : 19 Déc 2009 22:55

Re: [Débutant-AL] Problème avec OnTriggerEnter

Message par djulio74 » 17 Oct 2018 17:51

Salut. Je pense que le soucis viens de ta fonction OnTriggerEnter, qui justement n'est appelé qu'a la frame ou ton perso rentre dans le collider. Il faut remetre tes variable a false quand tu en sors.
tu peux rajouter une fonction OnTriggerExit pour inverser tes bool:

Code : Tout sélectionner

void OnTriggerExit()
    {
        collided = false;
        TXTcollided = "false";

    }
Comme ça quand tu entre dans un collider, tu check tes conditions, quand tu en sors, tu passe a false Collided.

______________________________________________________________
\_______________________ Impossible is nothing _______________________/

Akimania
Messages : 17
Inscription : 14 Jan 2017 07:39

Re: [Débutant-AL] Problème avec OnTriggerEnter

Message par Akimania » 17 Oct 2018 18:11

oui j'avais aussi essayer, mais pareil, il rentre et il y a le true qui ce déclenche puis j'ai le false en boucle au lieux du true
Image
when should i drop collision insurance

djulio74
Messages : 682
Inscription : 19 Déc 2009 22:55

Re: [Débutant-AL] Problème avec OnTriggerEnter

Message par djulio74 » 17 Oct 2018 18:23

en effet c'est etonnant . essaye juste ça :

Code : Tout sélectionner

public class playerController : MonoBehaviour
{
    public bool collided = false;

	void OnTriggerEnter(){
		collided  = true;
		print("entre dans le trigger");
	}

	void OnTriggerExit(){
		collided  = false;
		print("sors du trigger");
	}
}
les print devraient se faire qu'une fois a la fois, en entrant et sortant.
s'ils sont en continue, c'est que tu as d'autres detection de collision qui se font.
ton perso est-il géré par rigidbody donc collider sur le sol?

______________________________________________________________
\_______________________ Impossible is nothing _______________________/

Akimania
Messages : 17
Inscription : 14 Jan 2017 07:39

Re: [Débutant-AL] Problème avec OnTriggerEnter

Message par Akimania » 17 Oct 2018 18:41

oui oui de cette façon directe cela fonctionne, mais j'essaye de le déclenché sur tout les objets avec le tag est ou le layer Pushable, oui le tag est en boucle dans update c'est normal c'est pour que je vérifie qu'il reste a true quand je suis a l’intérieur mais toujours pas

djulio74
Messages : 682
Inscription : 19 Déc 2009 22:55

Re: [Débutant-AL] Problème avec OnTriggerEnter

Message par djulio74 » 17 Oct 2018 18:50

sans bouger ton perso, avec mon script est-ce que ça print quelque chose ?
Tu m'as pas dit comment est géré ton perso.. collision au sol?
Montre ton script en entier si tu veux

______________________________________________________________
\_______________________ Impossible is nothing _______________________/

Akimania
Messages : 17
Inscription : 14 Jan 2017 07:39

Re: [Débutant-AL] Problème avec OnTriggerEnter

Message par Akimania » 17 Oct 2018 19:01

impossible d'afficher tout le code ici, trop trop, je transfert le tout sur mega et je te donne le lien du zip par message pv

djulio74
Messages : 682
Inscription : 19 Déc 2009 22:55

Re: [Débutant-AL] Problème avec OnTriggerEnter

Message par djulio74 » 17 Oct 2018 19:03

nan t’embête pas, dans ce cas juste ce qui concerne les trigger du sujet. Si c'est autre que les morceau du début du post.

______________________________________________________________
\_______________________ Impossible is nothing _______________________/

Akimania
Messages : 17
Inscription : 14 Jan 2017 07:39

Re: [Débutant-AL] Problème avec OnTriggerEnter

Message par Akimania » 17 Oct 2018 19:05

trop tard mais merci quand meme je continue a chercher :-/ :snif:

djulio74
Messages : 682
Inscription : 19 Déc 2009 22:55

Re: [Débutant-AL] Problème avec OnTriggerEnter

Message par djulio74 » 17 Oct 2018 19:13

J'ai eu ton mp, je regarde ça au plus vite ;-)

______________________________________________________________
\_______________________ Impossible is nothing _______________________/

Répondre

Revenir vers « (C#) CSharp »