Numeri decimali e Mathf
Fa parte della sezione Fondamenti di scripting in Unity del percorso Unity di Coddy. Lezione 16 di 85.
Hai incontrato la f in I decimali hanno bisogno di una f: C# legge 0.5 come un double, mentre Unity usa float. La stessa cosa succede con la matematica. System.Math funziona con i double, quindi float s = Math.Sin(x); dà errore con CS0266: Cannot implicitly convert type 'double' to 'float'.
Unity ne ha una versione per float, Mathf: Mathf.Sin, Mathf.Abs, Mathf.Sqrt, Mathf.PI. Questa boa oscillante dava entrambi gli errori e compila dopo la modifica:
// prima: float y = 1 + Math.Sin(Time.time * 2) * 0.5;
float y = 1 + Mathf.Sin(Time.time * 2) * 0.5f;
transform.position = new Vector3(0, y, 0);I numeri interi come 1 e 2 non hanno bisogno di suffisso: un int diventa un float senza alcuna perdita.
Sfida
FacileFai compilare lo script del cuore, così tornerà a pulsare.
- Nella riga
size, cambiaMath.AbseMath.SininMathf.AbseMathf.Sin. - Cambia
0.5in0.5fe mantieni il resto della formula.
Premi «Gioca»: il cuore passa da 1 a 1.5 e ritorno, circa una volta al secondo. Poi premi «Verifica».
Provalo tu
using System;
using UnityEngine;
public class Pulse : MonoBehaviour
{
void Update()
{
float size = 1 + Math.Abs(Math.Sin(Time.time * 3)) * 0.5;
transform.localScale = new Vector3(size, size, size);
}
}
Tutte le lezioni di Fondamenti di scripting in Unity
1Nozioni di base di C# in Unity
Ciao, UnityVariabiliI numeri decimali richiedono una fTesto nella ConsoleVariabili che ricordanoIf ed ElseConfrontare i numeriRipasso: il collezionista di monete7Cicli e metodi
Ripeti con forCicli annidatiScrivere un metodoMetodi che restituiscono valoriArrayRiepilogo: scala10Trovare gli oggetti
Trovare per nomeTagTrovare per tipoI riferimenti battono la ricercaIl null di UnityRipasso: la moneta più vicina13Progetto: Schiva i blocchi
Il corridoreBlocchi dal cielo2Fallo muovere
Posiziona il cuboMuovilo a ogni frameRuotalo ogni secondoGuidalo con i tastiRiepilogo: guida il cubo5Vettori
Somma di vettoriDirezioniSpazio locale e spazio mondoVelocità diagonaleDistanza tra gli oggettiVector3 è una structRiepilogo: pilota di droni8GameObject e componenti
Riferimenti nell'InspectorOttenere un componenteComponenti mancantiAggiungere un componenteRequireComponentMostrare e nascondereRiepilogo: interruttore della luce3L’Inspector
Campi dell’InspectorSerializeFieldNumeri decimali e MathfAttributi dell’InspectorRiepilogo: ascensore6Trasformazioni e gerarchia
Genitori e figliIssare la bandieraScalaOsservare gli oggettiMuoversi verso un puntoRiepilogo: Luna in orbita9Progetto: Acchiappa la stella
Il raccoglitoreUna stella cadente12Il ciclo di vita dello script
Awake e StartUpdate e LateUpdateOnEnable e OnDisableL'ordine del ciclo di vitaRiepilogo: Lifecycle LoggerEsercitati da solo: Playground Unity