[Résolu] Animation de portes glissantes qui se décalent

Questions techniques liées à l’utilisation d'Unity (et n'entrant pas dans le cadre d'une des sections suivantes)
Avatar de l’utilisateur
Max
Messages : 8763
Inscription : 30 Juil 2011 13:57
Contact :

Re: Animation de portes glissantes qui se décalent

Message par Max » 04 Déc 2019 18:26

freepl a écrit :
04 Déc 2019 17:55
Pour info, je n'ai jamais fait d'animation à partir d'Unity.
oui je me doute, comme d'hab, tu pars à l'aventure sans avoir lu le manuel :mrgreen:

sinon, maintenant il faut que tu remplisses les conditions au niveau des transitions qui vont bien, comme montré en exemple dans mon dernier screen.
Pour les transitions, (idem pour la partie fermeture)

Image
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

Avatar de l’utilisateur
freepl
Messages : 1034
Inscription : 20 Mai 2012 19:33
Localisation : salon de provence

Re: Animation de portes glissantes qui se décalent

Message par freepl » 04 Déc 2019 22:42

Pour les transitions de Ouverture et Fermeture vers PorteDroite, listdoit être empty ?

Pour Fermeture
Pièces jointes
ScreenShot082.jpg
ScreenShot082.jpg (140.97 Kio) Consulté 3299 fois
ScreenShot083.jpg
ScreenShot083.jpg (143.46 Kio) Consulté 3299 fois

Avatar de l’utilisateur
freepl
Messages : 1034
Inscription : 20 Mai 2012 19:33
Localisation : salon de provence

Re: Animation de portes glissantes qui se décalent

Message par freepl » 04 Déc 2019 22:42

Pour Ouverture
Pièces jointes
ScreenShot080.jpg
ScreenShot080.jpg (165.24 Kio) Consulté 3298 fois
ScreenShot081.jpg
ScreenShot081.jpg (138.66 Kio) Consulté 3298 fois

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

Re: Animation de portes glissantes qui se décalent

Message par Max » 05 Déc 2019 08:41

Salut,
cela semble pas trop mal, j'espère que tu as fait de même pour le controller de la partie gauche
On va essayer de passer à la partie script. J’essaie de te poster ça en début d'après midi.
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

Avatar de l’utilisateur
freepl
Messages : 1034
Inscription : 20 Mai 2012 19:33
Localisation : salon de provence

Re: Animation de portes glissantes qui se décalent

Message par freepl » 05 Déc 2019 08:49

Merci

Avatar de l’utilisateur
freepl
Messages : 1034
Inscription : 20 Mai 2012 19:33
Localisation : salon de provence

Re: Animation de portes glissantes qui se décalent

Message par freepl » 05 Déc 2019 10:36

Sur les évènements PorteDroite et PorteGauche, j'ai mis les animations d'ouverture.
C'est bon ?
Z088.jpg
Z088.jpg (125.64 Kio) Consulté 3256 fois

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

Re: Animation de portes glissantes qui se décalent

Message par Max » 05 Déc 2019 14:10

Bon, pour ce qui est de la scène, tu as tes portes, et de chaque coté un BoxCollider configuré en mode Trigger, ce qui donne à peu près ceci (Trigger en rouge, et avec à droite un screen de l'inspector d'un des deux Triggers en guise d'exemple):

Image

Pour ce qui est de la partie code, un truc simple, à donc placer sur les deux Triggers, et à modifier éventuellement selon tes besoins:

Code : Tout sélectionner

using UnityEngine;
using System.Collections;

public class TestOuverture : MonoBehaviour 
{
    // à renseigner dans l'inspector
    [SerializeField] Animator porteDroite;
    [SerializeField] Animator porteGauche;

    static private bool opendoor = false;

    /// <summary>
    /// OnTriggerEnter
    /// </summary>
    /// <param name="other"></param>
    public void OnTriggerEnter (Collider other) 
    { 
	if ( other.tag == "PIETON" || other.tag == "Player") 
	{
            // attentd la fin de l'animation avant d'en déclancher une autre
            if (!porteDroite.GetCurrentAnimatorStateInfo(0).IsName("OuvertureBaieDroite") )
            {   // déclenche le trigger de l'animator de chaque porte
                if(!opendoor)
                {   // si portes fermées, alors on ouvre
                    porteDroite.SetTrigger("Ouverture");
                    porteGauche.SetTrigger("Ouverture");
                    opendoor = true;
                }
                else
                {   // sinon portes ouvertes, donc on ferme
                    porteDroite.SetTrigger("Fermeture");
                    porteGauche.SetTrigger("Fermeture");
                    opendoor = false;
                }
            }
        }
   }
}
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

Avatar de l’utilisateur
freepl
Messages : 1034
Inscription : 20 Mai 2012 19:33
Localisation : salon de provence

Re: Animation de portes glissantes qui se décalent

Message par freepl » 05 Déc 2019 14:52

Bonjour

Au départ, les portes s'ouvrent, se referment puis s'ouvrent et restent en position ouvertes.
C'est plus simple à expliquer avec le package.

Position d'attente après 2 mvts d'ouverture
Z089.jpg
Z089.jpg (39.02 Kio) Consulté 3217 fois

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

Re: Animation de portes glissantes qui se décalent

Message par Max » 05 Déc 2019 15:36

Il y a plusieurs choses qui cloches.
Déjà, ta sphère qui sert d'actionneur, possède deux colliders, ce qui génère en même temps deux appel à OnTriggerEnter. Donc vire le CapsuleCollider pour ne garder que le SphereCollider.
En suite, tes Animators ne sont pas bien configurés. Les points d'entrées ne sont pas sur le state neutre, en suite les retours ne sont pas HasExitTime.
Reprend mes screens sur ce point.
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

Avatar de l’utilisateur
freepl
Messages : 1034
Inscription : 20 Mai 2012 19:33
Localisation : salon de provence

Re: Animation de portes glissantes qui se décalent

Message par freepl » 05 Déc 2019 15:51

Max a écrit :
05 Déc 2019 15:36
vire le CapsuleCollider pour ne garder que le SphereCollider.
ok
Max a écrit :
05 Déc 2019 15:36
En suite, tes Animators ne sont pas bien configurés. Les points d'entrées ne sont pas sur le state neutre
le state neutre est-ce celui par défaut écrit Any State ?
Z090.jpg
Z090.jpg (63.76 Kio) Consulté 3174 fois
Car moi j'ai fait clic droit Create State empty et je l'ai renommé PorteDroite
J'ai aussi glissé dessus l'animation OuvertureBaieDroite
Z091.jpg
Z091.jpg (11.29 Kio) Consulté 3174 fois
Max a écrit :
05 Déc 2019 15:36
les retours ne sont pas HasExitTime.
Je l'ai vu dès le départ de ton coup de main.
Dans Inspector de Base Layer.PorteDroite ( ou gauche) je n'ai pas de coche HasExitTime comme sur tes screens.
Z092.jpg
Z092.jpg (225.16 Kio) Consulté 3174 fois

Répondre

Revenir vers « Unity le logiciel »