Problème avec mon script de saut

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
Gurkani
Messages : 18
Inscription : 07 Août 2014 14:35

Problème avec mon script de saut

Message par Gurkani » 18 Oct 2014 01:09

Salut,

Je cherche à faire un script de saut, voilà ce que j'ai fais :

Code : Tout sélectionner

	

    using UnityEngine;
    using System.Collections;
    public class jump : MonoBehaviour {
     
            public float jmphg = 397f;
           
            void FixedUpdate () {
     
                    if(Input.GetKeyDown(KeyCode.Z) && rigidbody2D.velocity.y == 0)
                    {
                            rigidbody2D.AddForce(Vector3.up * jmphg);
                    }
           
            }
    }
Le problème c'est que ça marche que quand mon personnage est à une position un peu haute, sinon il ne saute tout simplement pas...
Qu'y a t-il à régler dans mon code ?
Merci

Avatar de l’utilisateur
Scorpionnocrag
Messages : 155
Inscription : 10 Juin 2014 13:27

Re: Problème avec mon script de saut

Message par Scorpionnocrag » 19 Oct 2014 10:50

euh ... on est pas censer faire des test d'Input dans le update :shock: ??
Envie de vous mettre à la création de jeux vidéos avec Unity? -> https://www.youtube.com/channel/UCUgcAR ... tXjTqRsuUQ

Avatar de l’utilisateur
Franck
Bricoleur
Bricoleur
Messages : 2884
Inscription : 08 Jan 2011 18:43
Localisation : Tours

Re: Problème avec mon script de saut

Message par Franck » 19 Oct 2014 11:25

je me gourre peut-être.
Mais si tu mets <= au lieu de == , qu'est ce que cela donne?
Dés fois j'bug, dés fois j'bug pas.

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

Re: Problème avec mon script de saut

Message par boubouk50 » 20 Oct 2014 10:51

Code : Tout sélectionner

if(Input.GetKeyDown(KeyCode.Z) && rigidbody2D.velocity.y == 0)
Je dirai que rigidbody2D.velocity.y == 0 n'est pas une bonne condition.
Tu devrais d'abord tester ta touche "Jump" puis tester si tu n'es pas entrain de faire un saut. isGrounded est un booléen qui te renvoie si ton perso est au sol ou non.

Code : Tout sélectionner

...
if(Input.GetKeyDown(KeyCode.Z)) {
    if (CharacterController.isGrounded) {
        rigidbody2D.AddForce(Vector3.up * jmphg);
    }
}
"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

Gurkani
Messages : 18
Inscription : 07 Août 2014 14:35

Re: Problème avec mon script de saut

Message par Gurkani » 29 Oct 2014 20:45

Salut,
Le problème c'est que je peux pas mettre de CharacterController en 2D... :/ Une solution ?

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

Re: Problème avec mon script de saut

Message par boubouk50 » 30 Oct 2014 10:24

soit tu testes ta collision avec le sol dans onCollisionEnter2D(Collision2D coll)

Sinon j'ai trouvé ça aussi pour le character controller 2D (je n'ai pas regardé la vidéo)
"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

Gurkani
Messages : 18
Inscription : 07 Août 2014 14:35

Re: Problème avec mon script de saut

Message par Gurkani » 31 Oct 2014 14:55

Mais si j'utilise onCollisionEnter2D j'devrais mettre un trigger sur tous les sols où le personnage est susceptible de sauter non ?

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

Re: Problème avec mon script de saut

Message par boubouk50 » 31 Oct 2014 16:22

Ça semble évident, non?

Comment veux-tu savoir où tu peux sauter sans savoir où tu peux sauter?
Sinon, dis nous un peu plus le type de jeu que tu développes parce que la comme ça tel quel, on s'imagine que tu as un sol, des plateformes et que tu veux sauter dessus. Donc il faut bien que tes plateforme et ton sol soient déclarés comme sol pour pas que le personnage passe au travers et tombe vers l'infini (et au delà).
"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

Gurkani
Messages : 18
Inscription : 07 Août 2014 14:35

Re: Problème avec mon script de saut

Message par Gurkani » 01 Nov 2014 14:20

C'est un jeu de plateformes que je fais.

Bref, voici les sprites que j'ai fais en suivant ton conseil :
Sur le perso : http://pastebin.com/JwgPeCuz
Sur les triggers : http://pastebin.com/gPTpPyMp

Seulement il y'a un problème : Quand j'en met un seul il n'y a pas de problème, ça marche bien. Mais dés que j'met le scripts sur plusieurs triggers, ça marche que sur un seul (Je met bien le même tag).
Une solution ? :/

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

Re: Problème avec mon script de saut

Message par boubouk50 » 03 Nov 2014 10:45

FindWithTag(myTag) retourne un objet taggé "myTag". C'est aléatoire la recherche, il faut être plus précis sur la recherche et trouver le trigger sur lequel tu agis.
"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 »