Bonjour,
La fin de mes niveaux est caractérisée par un portail à traverser pour passer au niveau suivant; j'aimerai modifier cette fin pour que le portail agisse comme un trou noir : par exemple lorsque le joueur s'en approche il est attiré par le centre du portail avec pourquoi pas une rotation sur lui-même pendant la translation etc..
J'ai pensé un à collider une fois traversé engendre une translation/ rotation du personnage vers le portail mais je ne vois pas comment positionner ce collider précisément pour que le player passe à coté en cas de loupé et qu'il puisse quand même le prendre si l'angle d'arrivée est un peu obtus.
Si quelqu'un peut m'éclairer sur la démarche à suivre, si il y a une fonction spéciale ou si mon idée ne tient pas du tout la route ce serait super sympas, merci d'avance
[RESOLU] Effet de trou noir (aspiration)
[RESOLU] Effet de trou noir (aspiration)
Dernière édition par Alexis.B le 06 Mai 2020 10:32, édité 1 fois.
Re: Effet de trou noir (aspiration)
Salut,
moi, au lieu d'un collider, je mettrai un trigger, ainsi peut importe sous quel angle tu entre dans le trigger. Et quand tu entre dans le trigger tu actionnes l'annimation
moi, au lieu d'un collider, je mettrai un trigger, ainsi peut importe sous quel angle tu entre dans le trigger. Et quand tu entre dans le trigger tu actionnes l'annimation
La différence entre l'intelligence et la stupidité est que l'intelligence est limitée.
Re: Effet de trou noir (aspiration)
J'ai réussi à faire une rotation grâce à :
sauf que la rotation se fait instantanément et non progressivement, d'où vient mon problème ?
Sinon au lieu de modifier les rotation et taille dans le script, est-ce qu'on ne peu pas plutôt activer une animation ?
Code : Tout sélectionner
Quaternion.Euler(X , Y, Z)
Sinon au lieu de modifier les rotation et taille dans le script, est-ce qu'on ne peu pas plutôt activer une animation ?
Re: Effet de trou noir (aspiration)
pour ne pas que ta rotation soit instantannée, il te faut faire une boucle :
- soit dans la void Update : si la valeur de la rotation sur telle axe est inférieur à une valeur cible, tu incrémente cette valeur de rotation.
- dans une couroutine : tant que la valeur voulue n'est pas atteinte, tu incrémente la valeur.
Le soucis dans l'update, c'est que la condition va être vérifiée chaque frame, ce n'est pas optimale.
alors qu'avec une coroutine, il faut la lancer uniquement quand tu entre dans le collider, et une fois terminée, elle s’arrête.
Regarde du coté de StartCoroutine de la doc Unity
- soit dans la void Update : si la valeur de la rotation sur telle axe est inférieur à une valeur cible, tu incrémente cette valeur de rotation.
- dans une couroutine : tant que la valeur voulue n'est pas atteinte, tu incrémente la valeur.
Le soucis dans l'update, c'est que la condition va être vérifiée chaque frame, ce n'est pas optimale.
alors qu'avec une coroutine, il faut la lancer uniquement quand tu entre dans le collider, et une fois terminée, elle s’arrête.
Regarde du coté de StartCoroutine de la doc Unity
______________________________________________________________
\_______________________ Impossible is nothing _______________________/
Re: Effet de trou noir (aspiration)
Je vais regarder mercidjulio74 a écrit : ↑04 Mai 2020 17:55pour ne pas que ta rotation soit instantannée, il te faut faire une boucle :
- soit dans la void Update : si la valeur de la rotation sur telle axe est inférieur à une valeur cible, tu incrémente cette valeur de rotation.
- dans une couroutine : tant que la valeur voulue n'est pas atteinte, tu incrémente la valeur.
Le soucis dans l'update, c'est que la condition va être vérifiée chaque frame, ce n'est pas optimale.
alors qu'avec une coroutine, il faut la lancer uniquement quand tu entre dans le collider, et une fois terminée, elle s’arrête.
Regarde du coté de StartCoroutine de la doc Unity
Re: Effet de trou noir (aspiration)
Problème résolu, j'ai réussi à jouer l'animation du personnage au contact du collider du portail, mon erreur était que je demandais de jouer l'animation quand le portail entrait en contact avec le joueur et pas l'inverse