Les nombres décimaux ont besoin d’un f
Fait partie de la section Les bases du scripting dans Unity du Journey Unity de Coddy. Leçon 3 sur 85.
Les nombres entiers ne suffisent pas pour un jeu : un ballon flotte à 3.5, un joueur court à 4.2 unités par seconde. Les nombres avec une virgule ont leur propre type, float :
float speed = 4.2f;Remarque le f à la fin. En C#, un simple 4.2 est un double, un autre type décimal, et les positions et les tailles dans Unity sont des flottants. Le f indique à C# que le nombre est un flottant. Oublie-le et Unity refuse de démarrer le jeu, avec cette erreur dans la Console :
error CS0664: Literal of type double cannot be implicitly converted to type 'float'; use an 'F' suffix to create a literal of this typeÇa a l’air inquiétant, mais cela signifie simplement « ajoute le f ». Un nombre entier comme 2 n’a pas besoin de f : il tient dans un flottant tel quel.
Autre surprise : la division de deux int ne conserve que la partie entière, donc 7 / 2 vaut 3. Écris 7 / 2f pour obtenir 3.5.
Défi
FacileCorrige le script du ballon, puis fais-le flotter plus haut et grossir.
- Appuie sur « Jouer » : la Console affiche l’erreur CS0664 sur la ligne
height. - Remplace cette ligne par
float height = 3.5f;. - Remplace la ligne de taille par
float size = 1.5f;. Chaque nombre avec un point décimal doit être suivi def.
Appuie sur « Jouer » : le ballon flotte à 3.5 et mesure une fois et demie sa taille initiale. Puis appuie sur « Vérifier ».
Essayez vous-même
using UnityEngine;
public class Balloon : MonoBehaviour
{
void Start()
{
float height = 2.5;
float size = 1;
transform.position = new Vector3(0, height, 0);
transform.localScale = new Vector3(size, size, size);
}
}
Toutes les leçons de Les bases du scripting dans Unity
1Les bases de C# dans Unity
Bonjour, UnityVariablesLes nombres décimaux ont besoin d’un fDu texte dans la consoleDes variables qui mémorisentSi et sinonComparer des nombresRécapitulatif : le collecteur de pièces7Boucles et méthodes
Répéter avec forBoucles imbriquéesÉcrire une méthodeMéthodes qui renvoient une réponseTableauxRécapitulatif : escalier10Rechercher des objets
Rechercher par nomTagsRechercher par typeLes références plutôt que la rechercheLe null de UnityRécapitulatif : la pièce la plus proche13Projet : Éviter les blocs
Le coureurDes blocs tombent du ciel2Mettez-le en mouvement
Placez le cubeDéplacez-le à chaque frameTournez chaque secondeDirigez avec les touchesRécapitulatif : pilotez le cube5Vecteurs
Additionner des vecteursDirectionsEspace local et espace globalVitesse diagonaleDistance entre des objetsVector3 est une structureRécapitulatif : pilote de drone8GameObjects et composants
Références dans l’InspectorObtenir un composantComposants manquantsAjouter un composantRequireComponentAfficher et masquerRécapitulatif : interrupteur3L’inspecteur
Champs de l’inspecteurSerializeFieldFlottants et MathfAttributs de l’inspecteurRécapitulatif : ascenseur6Transformations et hiérarchie
Parents et enfantsHissez le drapeauÉchelleRegarder les objetsSe déplacer vers un pointRécapitulatif : la lune en orbite9Projet : Attrape l’étoile
Le receveurUne étoile filanteEntraînez-vous par vous-même : Playground Unity