Los decimales necesitan una f
Parte de la sección Fundamentos de scripting en Unity del Journey de Unity de Coddy. Lección 3 de 85.
Los números enteros no bastan para un juego: un globo flota a 3.5, un jugador corre a 4.2 unidades por segundo. Los números con punto decimal tienen su propio tipo, float:
float speed = 4.2f;Fíjate en la f del final. En C#, un 4.2 sin más es un double, otro tipo decimal, y las posiciones y los tamaños de Unity son valores float. La f le indica a C# que el número es un float. Si la omites, Unity se niega a iniciar el juego y muestra este error en la consola:
error CS0664: Literal of type double cannot be implicitly converted to type 'float'; use an 'F' suffix to create a literal of this typeParece aterrador, pero solo significa «añade la f». Un número entero como 2 no necesita f: cabe en un float tal como está.
Una sorpresa más: al dividir dos int, se conserva solo la parte entera, así que 7 / 2 es 3. Escribe 7 / 2f para obtener 3.5.
Desafío
FácilCorrige el script del globo y luego haz que flote más alto y sea más grande.
- Pulsa «Jugar»: en la Consola aparece el error CS0664 en la línea de
height. - Cambia esa línea por
float height = 3.5f;. - Cambia la línea de tamaño por
float size = 1.5f;. Todos los números con punto decimal necesitan unaf.
Pulsa «Jugar»: el globo flota a 3.5, con un tamaño una vez y media mayor. Después, pulsa «Comprobar».
Pruébalo tú mismo
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);
}
}
Todas las lecciones de Fundamentos de scripting en Unity
1Conceptos básicos de C# en Unity
Hola, UnityVariablesLos decimales necesitan una fTexto en la consolaVariables que recuerdanIf y ElseComparar númerosRepaso: Recolector de monedas7Bucles y métodos
Repetir con forBucles dentro de buclesEscribir un métodoMétodos que respondenArraysRepaso: escalera10Encontrar cosas
Buscar por nombreEtiquetasBuscar por tipoLas referencias vencen a FindEl null de UnityRepaso: moneda más cercana13Proyecto: Esquiva los bloques
El corredorBloques desde el cielo2Haz que se mueva
Coloca el cuboMuévelo en cada fotogramaGira cada segundoDirige con las teclasRepaso: conduce el cubo5Vectores
Sumar vectoresDireccionesEspacio local y mundialVelocidad diagonalDistancia entre objetosVector3 es una estructuraRepaso: piloto de dron8GameObjects y componentes
Referencias en el InspectorObtener un componenteComponentes faltantesAñadir un componenteRequireComponentMostrar y ocultarRepaso: interruptor de luz3El Inspector
Campos del InspectorSerializeFieldFloats y MathfAtributos del InspectorRepaso: Ascensor6Transformaciones y jerarquía
Padres e hijosIza la banderaEscalaMira las cosasMuévete hacia un puntoRepaso: Luna en órbita9Proyecto: Atrapa la estrella
El cazadorUna estrella fugaz12El ciclo de vida de un script
Awake y StartUpdate y LateUpdateOnEnable y OnDisableEl orden del ciclo de vidaRepaso: registrador del ciclo de vidaPractica por tu cuenta: Playground de Unity