Battere il tempo
Fa parte della sezione Fisica e gameplay del percorso Unity di Coddy. Lezione 31 di 63.
Sfida
MedioAggiungi il timer. Mantieni tutto ciò che hai fatto nei passaggi precedenti e aggiungi a Ball:
public float timeLimit = 60f;(nell’Inspector imposta 30) epublic float timeLeft;. Essendo pubblica,timeLeftè visibile nell’Inspector, dove puoi guardarla diminuire.- Quando inizia il gioco,
timeLeftè uguale atimeLimit. A ogni frame, finché è maggiore di 0, diminuisce del tempo trascorso nel frame. - Quando raggiunge 0, rimane esattamente a 0 e la palla registra una sola volta
Time's up! Score: 5, insieme al suo punteggio. - Quando il tempo è scaduto, le frecce non spingono più la palla.
Premi Play e guarda quanti punti fai in 30 secondi, poi premi Check.
Provalo tu
using UnityEngine;
public class Ball : MonoBehaviour
{
public float force = 10f;
public int score;
private Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
}
void FixedUpdate()
{
float x = Input.GetAxis("Horizontal");
float z = Input.GetAxis("Vertical");
rb.AddForce(new Vector3(x, 0f, z) * force);
}
public void AddScore(int points)
{
score += points;
Debug.Log("Score: " + score);
}
}
Tutte le lezioni di Fisica e gameplay
1Corpo rigido
Gravità e massaSpingi con AddForceSalta con un impulsoFixedUpdate per la fisicaVelocitàCorpi cinematiciRiepilogo: piattaforma di lancio4Coroutine
InvokeInvokeRepeating, CancelInvokeLa tua prima coroutineCicli nelle coroutineInterrompere le coroutineRiepilogo: conto alla rovescia2Collisioni
OnCollisionEnterCosa ho colpito?Rompersi all'impattoRestare a terraRimbalzo e attritoForme dei ColliderRiepilogo: muro distruttibile5Progetto: Corsa alle monete
La palla rotolanteMonete da raccogliere