[Plateformer 2D][C#]Faire "coller" un personnage 2D sur une plateforme unclinée[Résolu]

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
Darklombax
Messages : 6
Inscription : 25 Nov 2016 21:10

[Plateformer 2D][C#]Faire "coller" un personnage 2D sur une plateforme unclinée[Résolu]

Message par Darklombax » 25 Nov 2016 22:05

Bonjour/Bonsoir a tous/toutes,

Je suis en train de réaliser un Plateformer 2D

Et je cherche a faire marcher mon personnage sur une plateforme inclinée, car dans un premier temps j'avais contraint le Rigidbody du sprite en axe Z comme vous pouvez le voir si dessous:

Image

Cependant pour plus de réalisme j'ai décidé qu'il fallait mieux que le personnage "colle" au sol, j'ai donc enlevé la contrainte et malheureusement dés qu'il percute le collider de la plateforme il tombe vers l'avant :

Image

Voici le personnage, il s'agit d'un box collider 2D :

Image

Et voici la plateforme, il s'agit d'un polygone collider 2D :

Image


Merci tu temps que vous avez consacré a lire ce post.
Et je vous remercie d'avance pour vos reponses.

Nicolas V.
Dernière édition par Darklombax le 05 Déc 2016 22:51, édité 1 fois.

Molgy
Messages : 26
Inscription : 12 Mai 2016 04:01

Re: [Plateformer 2D][C#]Faire "coller" un personnage 2D sur une plateforme unclinée

Message par Molgy » 01 Déc 2016 15:48

Hello,

J'ai jamais vraiment testé mais selon moi, il faut que tu utilises des raycasts devant et derrière ton personnage pour connaître l'angle, un petit exemple ici avec de la 3D :

http://answers.unity3d.com/questions/16 ... ormal.html

Attention quand même ça va prendre en compte le cas même quand il saute, donc n'oublie pas de gérer le maxRange du raycast :

https://docs.unity3d.com/ScriptReferenc ... ycast.html

Sinon ton personnage va s'incliner dans le sens du saut même quand il est en l'air.

Bon courage,

Molgy
T'entraîner tu devras, :!:
Tester tu feras, :?:
Réussite tu auras. 8-)
-- Dayo ! :merci:

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

Re: [Plateformer 2D][C#]Faire "coller" un personnage 2D sur une plateforme unclinée

Message par boubouk50 » 01 Déc 2016 16:26

Je suis pas d'accord avec le "plus de réalisme". Justement, pour que ce soit réaliste, il ne faut pas qu'il prenne l'inclinaison, la gravité ne change pas en fonction de la pente.
Après, ça peut-être un mécanisme de jeu, je ne dis pas, mais comment gères-tu le saut? Perpendiculaire à l'inclinaison ou au Y-World? Pareil pour les tirs, le projectile suis le bras (donc la pente) ou bien reste horizontal?
Tu noteras qu'énormément de jeux laissent le personnage vertical (ce qui est justement réaliste), mais que certains gèrent la pente avec des sprites différents pour simuler une montée ou une descente. D'autres délaissent le sprite unique et créent un personnage animé en 2D (avec jambes, corps, bras, etc) pour pouvoir coller les pieds au sol. D'autres laissent le même sprite et un des 2 pieds est en l'air et le joueur s'en contente (s'il ne s'en tape pas complet...). Très peu suivent ton raisonnement (ce qui ne veut pas dire qu'ils ont raison, mais qu'ils ont leurs raisons).
Où te situes-tu exactement?
"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

Darklombax
Messages : 6
Inscription : 25 Nov 2016 21:10

Re: [Plateformer 2D][C#]Faire "coller" un personnage 2D sur une plateforme unclinée

Message par Darklombax » 03 Déc 2016 17:55

Bonjour/Bonsoir,

Merci Molgy pour l'idée, je vais tout de même regarder pour ma culture mais compliquée a appliquée a mon niveau.

Boubouk50: J'ai effectivement le tir horizontal et le personnage en plusieurs éléments, j'avoue ne pas avoir pensé au modification d'animation pour interagir avec la pente ( qui serait plus simple et plus réaliste ).
Pour le saut je lui applique une force en Y et j'ai un collider qui tcheck si le personnage "touche le sol".

Pour déclencher l'animation, je pensais a mettre un trigger sur la pente ou vous me conseillez une autre methode ?

Nicolas V.

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

Re: [Plateformer 2D][C#]Faire "coller" un personnage 2D sur une plateforme unclinée

Message par boubouk50 » 05 Déc 2016 10:15

Alors là, ce n'est plus mon domaine, il faut aller éplucher un peu le net pour le placement de pieds. Je crois pas qu'il faille détecter les pentes, l'algorithme derrière le placement des pieds devrait s'occuper des tous les cas.
"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

Molgy
Messages : 26
Inscription : 12 Mai 2016 04:01

Re: [Plateformer 2D][C#]Faire "coller" un personnage 2D sur une plateforme unclinée

Message par Molgy » 05 Déc 2016 10:58

Hello,

Utilisez des Triggers pour ce genre de chose c'est rarement une bonne idée, tu vas vite te retrouver avec des dizaines de cas différents à gérer, et le joueur a de fortes chance de se retrouver bloquer sur une animation spécifique. Ça se fait à la limite avec les raycasts de déclencher des animations mais les triggers c'est dangereux selon moi, ça peut marcher mais compliquer à gérer tous les cas.

Quand tu ne sais pas trop utiliser de Raycast pour un platformer2D et que tu veux faire des sols en diagonales sans que ça se voit de trop, le plus simple et "réaliste", c'est de mettre un avant plan qui cache les pieds du personnage lors de la monté. (Genre vu le design que tu as ça pourrait être des câbles ou trucs comme ça)

Dernière chose, quand tu fais un personnage son collider doit toujours être plus petit que le sprite, puisque quand tu touches le joueur, visuellement il faut qu'on sente que le projectile est "entré" dans le sprite.

Voilou,

Molgy
T'entraîner tu devras, :!:
Tester tu feras, :?:
Réussite tu auras. 8-)
-- Dayo ! :merci:

Répondre

Revenir vers « Scripting »