Ruota ogni secondo
Fa parte della sezione Fondamenti di scripting in Unity del percorso Unity di Coddy. Lezione 4 di 67.
transform.Rotate(x, y, z) ruota un GameObject di altrettanti gradi attorno a ciascuno dei suoi assi. Chiamato in Update(), lo ruota un po' a ogni frame, quindi l'oggetto continua a ruotare.
Ma quanti frame ci sono in un secondo? Su un computer veloce magari 120, su un telefono magari 30. Un semplice transform.Rotate(0, 0, 5) ruoterebbe quattro volte più velocemente su quello veloce. La risposta di Unity è Time.deltaTime: i secondi trascorsi dall'ultimo frame. Moltiplicando una velocità per questo valore, la velocità è espressa al secondo, su qualsiasi dispositivo.
Qui una ruota ruota attorno al suo asse z, di 45 gradi al secondo:
public float speed = 45f;
void Update()
{
transform.Rotate(0, 0, speed * Time.deltaTime);
}A 60 frame al secondo, Time.deltaTime è circa 0.0167, quindi a ogni frame ruota di 45 * 0.0167, cioè circa 0.75 gradi, e 60 di questi fanno 45. A 30 frame al secondo, a ogni frame ruota il doppio, e un secondo continua comunque a totalizzare 45.
Sfida
FacileIl cubo ha uno script Spinner con una speed di 90. In Update(), fai ruotare il cubo attorno al suo asse y di speed gradi al secondo, su qualsiasi dispositivo.
Premi Play per guardarlo, poi Check.
Provalo tu
using UnityEngine;
public class Spinner : MonoBehaviour
{
public float speed = 90f;
void Update()
{
// Ruota qui il cubo attorno al suo asse y
}
}
Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.
Tutte le lezioni di Fondamenti di scripting in Unity
1Il tuo primo script
Ciao, UnityPosiziona il cuboMuovi a ogni frameRuota ogni secondoGuida con i tastiRiepilogo: guida il cubo4Vettori
Sommare vettoriDirezioniSpazio locale e spazio globaleVelocità diagonaleDistanza tra gli oggettiVector3 è una structRiepilogo: pilota di droni7Progetto: Acchiappa la stella
L'acchiappatoreUna stella cadente10Il ciclo di vita degli script
Awake e StartUpdate e LateUpdateOnEnable e OnDisableL’ordine del ciclo di vitaRipasso: logger del ciclo di vita2L'Inspector
Campi dell'InspectorSerializeFieldNumeri decimali e MathfAttributi dell'InspectorRiepilogo: Ascensore5Trasformazioni e gerarchia
Genitori e figliScalaGuarda gli oggettiMuoversi verso un puntoRiepilogo: Luna in orbita6Oggetti di gioco e componenti
Riferimenti nell’InspectorOttenere un componenteComponenti mancantiAggiungere un componenteRequireComponentMostrare e nascondereRipasso: interruttore della luce