pousser le player vers l'arriere

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
Badsword14
Messages : 11
Inscription : 20 Déc 2021 20:24

pousser le player vers l'arriere

Message par Badsword14 » 22 Juil 2022 23:30

Bonjour à tous,
j'espere que vous allez tous bien

je suis novice dans le monde du Développement du jeux video ( 1ans et demi)
Et je m'amuse à suivre des tutos sur le net.

Mon premier fut celui de " TUTO UNTY FR" , ma fille joue encore à mon premier jeux, et j'en suis fier

Depuis peu j'ai commencé un tuto sur le site de tuto.com
celui sur la création d'un jeux pour mobile
J'avance assez bien, mais ce matin j'ai été confronté à un soucis, cela fait 5h que je cherche , et maintenant j'ai besoin de vous.

Le but et de faire reculé mon personnage quans l'ennemi le touche, et le bout du code qui m'embete , est celui ci

Code : Tout sélectionner



    IEnumerator Degats(GameObject col) // ici on veut un parametre , donc le player, pour reutiliser notre player apres
    {
        Debug.Log ("Le player est touché"); //on mets cela pour visualiser car pas encore de vie sur le perso
        GetComponent<AudioSource>().PlayOneShot(SoundDegats);
        pause = true; // on mettra sur l'attaque du zombie une pause, pour pas qu'il attaque de suite

        // on veut que le perso soit jeter par le zombie du bon coté, et voici pk on avait besoin d'un parametre, on l'utilise ici le gameobject qui est le player pour jouer avec son rigidbody2d
       if (transform.position.x > target.transform.position.x)
        {

            col.GetComponent<Rigidbody2D>().velocity = (-Vector2.right * 200 * Time.deltaTime);
        }
        else
        {
            col.GetComponent<Rigidbody2D>().velocity = (Vector2.right * 200 * Time.deltaTime);
        }
         yield return new WaitForSeconds(1);
        pause = false;
    }
    
au début je pensais que cela venait de mon appel au Getcomponent de "col", mais non car j'ai testé avec un changement de scale et cela marche bien, j'ai testé avec un addforce, et cela fonctionne

Donc je seche

merci pour votre aide


pour info, quand l'ennemi touche le personnage, le son se joue bien, la pause de 1 seconde aussi, mais mon perso ne recul pas du tout

Avatar de l’utilisateur
Max
Messages : 8677
Inscription : 30 Juil 2011 13:57
Contact :

Re: pousser le player vers l'arriere

Message par Max » 23 Juil 2022 16:48

Bonjour,

tu attaques directement le paramètre Velocity, et sur une frame à priori. Ton personnage possède certainement un controller, qui gère la physique de ton personnage, ce qui impacte directement la vélocité de ton rigidbody dans la boucle physique et il est possible la valeur que tu injectes alors ne soit pas vraiment prise en compte.
Ce n'est pas toujours le mieux de jouer directement sur ce genre de paramètre (comme le conseil d'ailleurs la doc), mais dans ton cas passer par AddForce parait peut-être plus sein en terme de gestion (ces fonctions sont là pour cela) et d'ailleurs tu sembles avoir constaté que cela fonctionnait visiblement bien mieux.
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Badsword14
Messages : 11
Inscription : 20 Déc 2021 20:24

Re: pousser le player vers l'arriere

Message par Badsword14 » 23 Juil 2022 19:25

Merci beaucoup pour ta réponse.
Mais sur le tuto que je suis utile la vélocity et le perso glisse sur le sol sir quelques centimètres.

Le addforce me fait une sorte de teleportation sur la même distance , mais je trouve cela moche visuellement.

Il y a sûrement un truc à faire, je prend toutes les pistes.

Je voudrais bien voit le personnage glisser, comme si on le poussait réellement

Merci encore.

Avatar de l’utilisateur
Max
Messages : 8677
Inscription : 30 Juil 2011 13:57
Contact :

Re: pousser le player vers l'arriere

Message par Max » 23 Juil 2022 20:48

As-tu le lien vers le tuto vidéo ?
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Badsword14
Messages : 11
Inscription : 20 Déc 2021 20:24

Re: pousser le player vers l'arriere

Message par Badsword14 » 23 Juil 2022 22:13

Malheureusement c'est un tuto payant, donc non pas de lien, dsl.

Mais du coup pour avoir un addforce avec le perso qui glisse et non une sorte de déplacement.
C'est possible ??

Merci Max

Avatar de l’utilisateur
Max
Messages : 8677
Inscription : 30 Juil 2011 13:57
Contact :

Re: pousser le player vers l'arriere

Message par Max » 24 Juil 2022 10:39

Badsword14 a écrit :
23 Juil 2022 22:13
Mais du coup pour avoir un addforce avec le perso qui glisse et non une sorte de déplacement.
C'est possible ??
oui bien sûr.
Après la gestion de la physique reste quelque chose de spécifique et pas toujours évident.
Si dans le tuto que tu suis c'est prévu avec un changement de vélocité du RigidBody2D, alors cela devrait fonctionner aussi chez toi. Il doit y avoir un truc que tu n'as pas fait et qui change la donne (le Material des colliders par exemple, ou un paramètre du Player Controller comme un changement de BodyType ?).
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Répondre

Revenir vers « Scripting »