Partage
  • Partager sur Facebook
  • Partager sur Twitter

[Unity 3D] utilisation de Mathf.Approximately

donner une marge d' erreur à une valeur

    6 novembre 2019 à 4:58:48

    using UnityEngine;
    using System.Collections;
    
    public class PietonAnimationEscalier : MonoBehaviour {
    	
    	private TrajetVl trajetVl;
    	public Animation anim;
    	public string idle, walk, montee, descente;
    	public bool chien;
    	
    	void Start () {
    		if (chien)
    			trajetVl = transform.parent.parent.GetComponent<TrajetVl>();
    		else 
    			trajetVl = transform.parent.GetComponent<TrajetVl>();
    	}
    	
    	
    	
    	void Update () {
    		if (trajetVl.kmh != trajetVl.kmh) {
    			UpdateAnimation (trajetVl.kmh);
    			trajetVl.kmh = trajetVl.kmh;
    		}
    	}
    	
    	private void UpdateAnimation (float _speed) {
    		switch ((int)Mathf.Round(_speed*10)) {
    		case 0: anim.Play (idle);
    			break;
    		case 48: anim.Play (descente);
    			break;
    		case 49: anim.Play (montee);
    			break;
    		default: anim.Play (walk);
    			break;
    		}
    	}
    }


    Bonjour

    J'ai un script dans lequel un personnage doit faire plusieurs animations s'il va à 0, 4.8 ou 4.9 km/h  

    Mais c'est des valeur float qui ne sont pas précises, type si c'est 4.9 qui est donné par un autre script, la valeur réelle 4.9 peut être 4.900001 ou 4.899999.

     J'ai vu que l'on pouvait utiliser la comparaison de float: Mathf.Approximately qui prend en charge les approximations.

    Je ne comprends pas comment modifier Mathf.Round par Mathf.Approximately

    Merci de votre aide

    -
    Edité par freepl 6 novembre 2019 à 4:59:29

    • Partager sur Facebook
    • Partager sur Twitter
      6 novembre 2019 à 12:16:46

      La ligne 21 est toujours aussi foireuse.

      Ces méthodes font ce qui est indiqué dans la documentation, rien de plus, et je les trouve plutôt claires.

      C'est votre besoin que je ne trouve pas clair.

      Si vous voulez "stabiliser" les animations, utilisez des valeurs différentes pour le passage à animation et la sortie de cette animation.

      Mais après réflexion, les animations devraient être "blendé", et c'est le rôle de l'Animator d'Unity3D.

      Alors, pourquoi vous vous prenez la tête avec ça alors qu'Unity offre un outil bien plus puissant que ce bricolage ?

      • Partager sur Facebook
      • Partager sur Twitter
      Je recherche un CDI/CDD/mission freelance comme Architecte Logiciel/ Expert Technique sur technologies Microsoft.

      [Unity 3D] utilisation de Mathf.Approximately

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown