Ganar o perder
Parte de la sección Física y jugabilidad del Journey de Unity de Coddy. Lección 32 de 63.
Desafío
IntermedioÚltimo paso: una forma de ganar. Conserva todo lo de los pasos anteriores y añade a Ball:
public int target = 10;(el Inspector establece 8).- El juego está en marcha mientras
timeLeftsea mayor que 0 yscoresea menor quetarget. Escríbelo como un método,bool IsPlaying(), y úsalo: el reloj cuenta hacia atrás, las flechas empujan y las monedas suman puntos solo mientras el juego está en marcha. - Cuando una moneda haga que
scorellegue atargeto lo supere, registraYou win!después de la línea del puntaje. - Cuando se acabe el tiempo primero, registra
You lose!después de la líneaTime's up!.
Presiona Play y alcanza 8 puntos antes de que se acabe el tiempo; después, presiona Check.
Pruébalo tú mismo
using UnityEngine;
public class Ball : MonoBehaviour
{
public float force = 10f;
public int score;
public float timeLimit = 60f;
public float timeLeft;
private Rigidbody rb;
void Start()
{
rb = GetComponent<Rigidbody>();
timeLeft = timeLimit;
}
void Update()
{
if (timeLeft > 0f)
{
timeLeft -= Time.deltaTime;
if (timeLeft <= 0f)
{
timeLeft = 0f;
Debug.Log("Time's up! Score: " + score);
}
}
}
void FixedUpdate()
{
if (timeLeft > 0f)
{
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);
}
}
Todas las lecciones de Física y jugabilidad
1Cuerpo rígido
Gravedad y masaEmpujar con AddForceSaltar con un impulsoFixedUpdate para físicaVelocidadCuerpos cinemáticosRepaso: plataforma de lanzamiento2Colisiones
OnCollisionEnter¿Qué golpeé?Romper al impactarDe pie sobre el sueloRebote y fricciónFormas de los collidersRepaso: muro destructible5Proyecto: Carrera de monedas
La bola rodanteMonedas para recoger