[DB] Problème de saut

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
Strox
Messages : 9
Inscription : 15 Mars 2016 15:49

[DB] Problème de saut

Message par Strox » 30 Juin 2016 17:22

Bonjour la communauté !

Je viens de commencer mon projet de jeu android de course 2D. Le jeu mettra en scène un personnage où il faudra éviter les obstacles, prendre des objets, suater sur des plateformes... Bref une sorte de plateformer avec le personnage qui avance tout seul.

J'explique mon problème, j'ai mon personnage qui saute que quand le bool ToucheSol est true soit que le personnage touche un collider avec le tag "sol". Mais le problème est que lorsqu'il saute sur une plateforme tagée Sol, le personnage peut rester coller en dessous, ou s'il reste sur les bords peut décoller vers l'infini et l'au-delà.

Voici mon bout de code.

Code : Tout sélectionner

if (Input.GetKey(KeyCode.UpArrow) && ToucheSol == true)
{
            GetComponent<Rigidbody2D>().AddForce(new Vector2(0, 300));
 }

void OnCollisionEnter2D(Collision2D coll)
{
        anim.SetBool("jump", false);
        if (coll.gameObject.tag == "Sol")
        {
            ToucheSol = true;
        }
}
void OnCollisionExit2D(Collision2D coll)
{
        anim.SetBool("jump", true);
        if (coll.gameObject.tag == "Sol")
        {
            ToucheSol = false;
        }
}
Est-ce que vous avez une solution pour savoir si le personnage est sur la plateforme et non sur les autres côtés ?

Merci en tout cas pour votre aide !

:!: Attention à la section où vous postez. :!:
Merci de lire la Netiquette.

mathaout
Messages : 17
Inscription : 13 Juin 2016 15:29

Re: [DB] Problème de saut

Message par mathaout » 01 Juil 2016 14:58

Bonjour,
Personnellement, je rajouterais un collider Trigger au niveau des pieds. Comme ça tu a toujours la collision classique avec les objets et tu peux détecter si les pieds touchent le sol avec onTriggerEnter.

Après je suis pas un expert comme certains sur le forum. Il y a certainement une méthode plus propre.
Étudiant en école d'ingénieur souhaitant se perfectionner sur Unity

Strox
Messages : 9
Inscription : 15 Mars 2016 15:49

Re: [DB] Problème de saut

Message par Strox » 01 Juil 2016 19:39

mathaout a écrit :Bonjour,
Personnellement, je rajouterais un collider Trigger au niveau des pieds. Comme ça tu a toujours la collision classique avec les objets et tu peux détecter si les pieds touchent le sol avec onTriggerEnter.

Après je suis pas un expert comme certains sur le forum. Il y a certainement une méthode plus propre.
Merci mathaout pour ta réponsé :-D
J'ai regardé sur internet et je ne comprend pas comment je peux m'y prendre pour mettre que les pieds en trigger. Peux tu m'expliquer un peu stp ?

mathaout
Messages : 17
Inscription : 13 Juin 2016 15:29

Re: [DB] Problème de saut

Message par mathaout » 01 Juil 2016 20:18

Ton personnage est en une pièce?
Sinon tu crées un gameobject vide que tu glisses en fils. Tu mets ensuite le collider dedans à la position des pieds.
Étudiant en école d'ingénieur souhaitant se perfectionner sur Unity

Répondre

Revenir vers « (C#) CSharp »