anim.SetBool ne change pas de valeur?

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
Répondre
grex
Messages : 140
Inscription : 30 Mars 2014 18:11

anim.SetBool ne change pas de valeur?

Message par grex » 23 Août 2016 21:33

bonjour,
je suis entrain de suivre ce tutoriel:
https://youtu.be/VyVJ3GK64sA
Quand j'appuie sur la flèche avant, la valeur de la variable Walkfront devrait changer à true mais rien ne se passe.
Le problème ne vient pas du GetAxis car j'ai bien la valeur 1 quand j'appuie sur la flèche avant.

Code : Tout sélectionner

using UnityEngine;
using System.Collections;

public class perso : MonoBehaviour {

	public float VitesseMarche =3f;
	private Animator anim; 
	// Use this for initialization
	void Start () {
		anim = GetComponent<Animator> ();
	}
	
	// Update is called once per frame
	void Update () {
		if(Input.GetAxis("Vertical")>0);
		{
			//avance
			anim.SetBool("WalkFront", true);
			Debug.Log (Input.GetAxis("Vertical"));
		}
		if(Input.GetAxis("Horizontal")==0);
		{
			
			//avance
			anim.SetBool("WalkFront", false);
	

		}
	}
}
Ne faite par attention aux fautes je suis dyslexique.
J'utilise déjà un correcteur automatique:
http://www.reverso.net/orthographe/correcteur-francais/


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

Re: anim.SetBool ne change pas de valeur?

Message par boubouk50 » 24 Août 2016 09:28

Vérifie bien les 2 orthographes de WalkFront dans ton code et dans l'Animator. Il faut qu'ils concordent.
Vérifie également que le controller d'animation associé à l'Animator contient bien ta variable WalkFront.
"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

grex
Messages : 140
Inscription : 30 Mars 2014 18:11

Re: anim.SetBool ne change pas de valeur?

Message par grex » 24 Août 2016 23:50

Je ne comprends pas, car les 2 orthographes sont identiques et il y a bien une variable WalkFront.
Je me demande si ce n'est pas Unity qui a un bug...
Image
Ne faite par attention aux fautes je suis dyslexique.
J'utilise déjà un correcteur automatique:
http://www.reverso.net/orthographe/correcteur-francais/

dan44180
Messages : 31
Inscription : 11 Août 2016 08:20
Contact :

Re: anim.SetBool ne change pas de valeur?

Message par dan44180 » 25 Août 2016 07:09

et dans l'animator si tu coche a la main ta variable en true ton perso avance ? et ta variable reste a true ?

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

Re: anim.SetBool ne change pas de valeur?

Message par boubouk50 » 25 Août 2016 09:43

grex a écrit :Je me demande si ses pas unity qui à un bug.
Déduction un peu trop facile...
"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

grex
Messages : 140
Inscription : 30 Mars 2014 18:11

Re: anim.SetBool ne change pas de valeur?

Message par grex » 25 Août 2016 12:31

Quand je coche à la main mon perso avance.
Ne faite par attention aux fautes je suis dyslexique.
J'utilise déjà un correcteur automatique:
http://www.reverso.net/orthographe/correcteur-francais/

dan44180
Messages : 31
Inscription : 11 Août 2016 08:20
Contact :

Re: anim.SetBool ne change pas de valeur?

Message par dan44180 » 25 Août 2016 17:10

je viens juste de voir ton erreur
tu dis

Code : Tout sélectionner

      if(Input.GetAxis("Vertical")>0);
      {
         //avance
         anim.SetBool("WalkFront", true);
         Debug.Log (Input.GetAxis("Vertical"));
      }
et en meme temps tu dis:

Code : Tout sélectionner

      if(Input.GetAxis("Horizontal")==0);
      {
         
         //avance
         anim.SetBool("WalkFront", false);
donc comme ton horizontal est a zero ta variable est a false
quand tu appuis sur la vertical ca passe bien a un donc ta variable a
true sauf quelle repasse immediatement a false puisque l'horizontale est a 0
donc variable a false

grex
Messages : 140
Inscription : 30 Mars 2014 18:11

Re: anim.SetBool ne change pas de valeur?

Message par grex » 25 Août 2016 18:07

Ok merci, maintenant ça marche.
j'avais aussi fait d'autres erreurs, j'avais ajouté des ';'
Le problème venait de moi, mais c'est bizarre qu'il n'y ait pas eu d'erreur à la compilation pour les ';'
Ne faite par attention aux fautes je suis dyslexique.
J'utilise déjà un correcteur automatique:
http://www.reverso.net/orthographe/correcteur-francais/

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

Re: anim.SetBool ne change pas de valeur?

Message par boubouk50 » 25 Août 2016 18:16

En soi un ';' signifie la fin d'une instruction. Une instruction vide ne fait pas forcément d'erreur apparemment selon où elle est.
"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

Répondre

Revenir vers « (C#) CSharp »