Menu
CoddyTech

Ganar o perder

Parte de la sección Física y jugabilidad del Journey de Unity de Coddy. Lección 32 de 63.

challenge icon

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 timeLeft sea mayor que 0 y score sea menor que target. 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 score llegue a target o lo supere, registra You win! después de la línea del puntaje.
  • Cuando se acabe el tiempo primero, registra You lose! después de la línea Time'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