Techniques d'intégration multimédia, prof(s):
Mathf est le nom de la classe dans Unity qui offre diverses méthodes mathématiques utiles. Cette classe contient des fonctions pour faire des calculs de trigonométrie, de valeurs exponentielles, d'arrondissement, par exemple, en plus de quelques constantes utiles (dont le nombre Pi).
Quelques exemples d'utilisation de Mathf:
float a=Mathf.Cos(0.5f); // le cosinus de 0.5
float b=Mathf.Round(1.5f); // la valeur arrondie de 1.5 (c'est à dire 2)
float c=Mathf.PI*angle; // un angle, multiplié par le nombre PI (3.1416...)
Remarque!
La classe Mathf est une classe aux méthodes et propriétés statiques. En conséquence, on utilise le nom de la classe pour préfixer l'appel des fonctions (ex: Mathf.Floor() ) ou l'accès aux propriétés (ex: Mathf.PI). On ne peut pas créer d'instance d'une classe statique: vous ne verrez donc jamais une instruction comme: oMath=new Mathf().
Attention!
Dans la documentation officielle de C# de MicroSoft, vous allez certainement rencontrer des références à la classe Math. Cette classe joue un rôle semblable à Mathf en Unity, mais pour le développement C# ailleurs que dans Unity: Dans Unity, c'est Mathf qui est utilisée.
Voici quelques unes des méthodes les plus utilisées de la classe Mathf dans Unity.
| Méthode | Description | Exemples |
|---|---|---|
| Abs(float n) | retourne la valeur absolue du nombre n | float j=Mathf.Abs(-12.2f); // j==12.2f |
| Ceil(float n) | retourne la valeur entière supérieure le plus près ou égal à n sous forme d'un float | float j=Mathf.Ceil(1.1f); float k=Mathf.Ceil(1.9f); //j==2f, k==2f |
| CeilToInt(float n) | retourne la valeur entière supérieure le plus près ou égal à n sous forme d'un int | int j=Mathf.CeilToInt(1.1f); int k=Mathf.CeilToInt(1.9f); //j==2, k==2 |
| Clamp(float n,float min, float max) | retourne la valeur min si n est plus petit que min et la valeur max si n est plus grand que max. Sinon, la fonction retourne simplement n. | float i=Mathf.Clamp(6.1f,2f,9f); float j=Mathf.Clamp(1.5f,2f,9f); float k=Mathf.Clamp(10f,2f,9f); //i==6.1f, j==2f, k==9f |
| Floor(float n) | retourne la valeur entière (mais en float) inférieure le plus près ou égale à n | float j=Mathf.Floor(1.1f); float k=Mathf.Floor(1.9f); //j==1f, k==1f |
| FloorToInt(float n) | retourne la valeur entière (en int) inférieure le plus près ou égale à n | int j=Mathf.Floor(1.1f); int k=Mathf.Floor(1.9f); //j==1, k==1 |
| Round(float n) | retourne la valeur entière la plus proche du nombre n (sous forme de float) | float j=Mathf.Round(1.4f) float k=Mathf.Round(1.5f) //j==1f, k==2f |
| RoundToInt(float n) | retourne la valeur entière la plus proche du nombre n (sous forme de int) | float j=Mathf.RoundToInt(1.4f) float k=Mathf.RoundToInt(1.5f) //j==1, k==2 |
La classe Mathf comporte pas mal plus de méthodes que cette courte liste (entre autres, plusieurs méthodes pour faire des calculs trigonométriques ou des interpolations de valeurs). Consultez la documentation sur le site de Unity pour une liste complète des méthodes disponibles dans Mathf.
Voici les constantes les plus utilisées de la classe Mathf dans Unity.
| Constante | Description |
|---|---|
| Deg2Rad | Pour convertir des degrés en radians ( vaut: Mathf.PI/180) |
| Epsilon | Le plus petit float différent de zéro |
| Infinity | Représentation de l'infini positif |
| NegativeInfinity | Représentation de l'infini négatif |
| PI | La valeur de pi, approx: 3.14159f |
| Rad2Deg | Pour convertir des degrés en radians ( vaut: 180/Mathf.PI) |