[RESOLU][DB-AL] jouer deux animation en meme temps

Pour les scripts écrits en C#
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
sisir1980
Messages : 10
Inscription : 21 Jan 2018 22:21

[RESOLU][DB-AL] jouer deux animation en meme temps

Message par sisir1980 » 14 Jan 2020 13:19

Bonjour

en plein apprentissage d unity j'essai de jouer deux animations sur deux composants suivant une condition .
Je n'ai aucun problème lorsque je le fais sur un seul composant mais quand je le fais sur les deux j'ai une erreur de type :

Code : Tout sélectionner

Parameter 'a' does not exist.
UnityEngine.Animator:SetBool(String, Boolean)
animation:Update() (at Assets/animation.cs:31)
si je retire la deuxieme animation du code il n'y a plus d erreur d'apres mois tous les champs sont bien renseigner dans les composant mais je me demande si le problème ne viens pas du code

j'ai oublié aussi de vous dire que c'est deux animations différentes

Code : Tout sélectionner

public class animation : MonoBehaviour
{
	
	public Text txt1;
	public Animator anim;

	public InputField myInputField;
string txt ="AB";
    // Start is called before the first frame update
    void Start()
    {
        anim=
        	GetComponent<Animator>();
             
        
 
    }

    // Update is called once per frame
    void Update()
    {
 txt1.text=myInputField.text;
txt=myInputField.text;
    	if (txt=="AB"){
anim.SetBool("a",true);
anim.SetBool("b",true);
myInputField.text="";
    	}
    }
    public void change(){
    	txt1.text=myInputField.text;
txt=myInputField.text;

}
}
merci de votre aide
cdt

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

Re: DB jouer deux animation en meme temps

Message par Max » 14 Jan 2020 13:43

Bonjour,

Il faut aussi apprendre à interpréter les messages d'erreur. Visiblement, le paramètre "a" n'existe pas sur le controller "anim".
Tu parles de deux components Animator dans ton message, mais dans ton code tu ne fais référence qu'a un seul (anim).
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

sisir1980
Messages : 10
Inscription : 21 Jan 2018 22:21

Re: DB jouer deux animation en meme temps

Message par sisir1980 » 14 Jan 2020 15:01

Bonjour

meme en déclarant un deuxieme composant j'ai le meme problème avec le meme message d erreur par contre si je retire une animation dans le code l'autre fonctionne donc je ne vois pas comment faire car j'avais bien compris qu'il ne trouve pas "a" mais en retirant la ligne du "b" il retrouve "a".

cdt

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

Re: DB jouer deux animation en meme temps

Message par Max » 14 Jan 2020 15:19

Si je résume:

tu as deux GameObjects, avec chacun un Animator. Donc au total deux Animators.
Chaque animator possède deux paramètres Bool nommés "a" et "b".

j'ai bon jusque là ?
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

sisir1980
Messages : 10
Inscription : 21 Jan 2018 22:21

Re: DB jouer deux animation en meme temps

Message par sisir1980 » 14 Jan 2020 17:01

oui tout a fait

sisir1980
Messages : 10
Inscription : 21 Jan 2018 22:21

Re: DB jouer deux animation en meme temps

Message par sisir1980 » 14 Jan 2020 17:02

heu petite erreur dans la premiere animation il n'y a que a et dans la deuxieme il n'y a que b

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

Re: DB jouer deux animation en meme temps

Message par boubouk50 » 14 Jan 2020 17:27

la voilà ton erreur. Dans ton code, anim est déclaré pour le gameObject en cours et tu essaies d'accéder au paramètre a et b. Or les deux gameObjects possèdent soit l'un soit l'autre donc tu ne peux pas y accéder donc erreur.
Pourquoi ne pas l'appeler a dans les deux cas? Puisque les animations sont séparées, il n'y aura pas conflit.
Ou alors, tu peux définir le nom dans une variable que tu affecteras depuis l'Inspector.
"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

sisir1980
Messages : 10
Inscription : 21 Jan 2018 22:21

Re: DB jouer deux animation en meme temps

Message par sisir1980 » 14 Jan 2020 17:50

bonjour

la premiere solution ne fonctionne pas certe je n'ai plus d'erreur mais il n'y a qu'une animation qui se met en route .
et pour la deuxieme solution je ne vois pas trop comment faire je suis un débutant.

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

Re: DB jouer deux animation en meme temps

Message par Max » 14 Jan 2020 19:22

Comme suggéré plus haut, tu as deux animators à contrôler, pourquoi ne pas les mettre en cache par le biais de l'inspector. Et déclencher tes animations sur chaque animator par tes SetBool().
Genre:

Code : Tout sélectionner


	public Animator animA;
	public Animator animB;
	...
	

    // Update is called once per frame
    void Update()
    {
       ...
    	if (txt=="AB")
    	{
          animA.SetBool("a",true);
          animB.SetBool("b",true);
          ...
    	}
    }

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

sisir1980
Messages : 10
Inscription : 21 Jan 2018 22:21

Re: DB jouer deux animation en meme temps

Message par sisir1980 » 14 Jan 2020 20:06

merci ca fonctionne j'avais testé cela sauf que dans le void start je déclarais

Code : Tout sélectionner

 anim=
        	GetComponent<Animator>();
             test=
        	GetComponent<Animator>();
et en le retirant sa fonctionne

vous etes des dieux
un grand merci

Répondre

Revenir vers « (C#) CSharp »