Menu
CoddyTech

Touché !

Fait partie de la section Les bases du scripting dans Unity du Journey Unity de Coddy. Leçon 63 sur 67.

challenge icon

Défi

Moyen

Place au danger. Garde tout ce qui vient des étapes précédentes et termine le jeu lorsqu’un bloc touche le coureur :

  • Les deux sont des cubes d’une unité de largeur, donc un bloc touche le coureur lorsque leurs positions x sont distantes de moins de 1 et que leurs positions y sont distantes de moins de 1.
  • Vérifie chaque bloc après son déplacement, à chaque image. En cas de contact, affiche Game over et désactive le script avec enabled = false, afin que le coureur, les blocs et leur apparition s’arrêtent tous.

Appuie sur Jouer et vois combien de temps tu tiens, puis Vérifier.

Essayez vous-même

using System.Collections.Generic;
using UnityEngine;

public class Runner : MonoBehaviour
{
    [SerializeField] private float speed = 6f;
    [SerializeField] private float laneEdge = 4f;
    [SerializeField] private GameObject blockPrefab;
    [SerializeField] private float spawnEvery = 1f;
    [SerializeField] private float fallSpeed = 5f;

    private List<GameObject> blocks = new List<GameObject>();
    private float timer;

    void Update()
    {
        Vector3 p = transform.position;
        p.x += Input.GetAxisRaw("Horizontal") * speed * Time.deltaTime;
        p.x = Mathf.Clamp(p.x, -laneEdge, laneEdge);
        transform.position = p;

        timer += Time.deltaTime;
        if (timer >= spawnEvery)
        {
            timer = 0f;
            Vector3 spot = new Vector3(Random.Range(-laneEdge, laneEdge), 10f, 0f);
            blocks.Add(Instantiate(blockPrefab, spot, Quaternion.identity));
        }

        for (int i = blocks.Count - 1; i >= 0; i--)
        {
            blocks[i].transform.position += Vector3.down * fallSpeed * Time.deltaTime;
            if (blocks[i].transform.position.y < -1f)
            {
                Destroy(blocks[i]);
                blocks.RemoveAt(i);
            }
        }
    }
}

Toutes les leçons de Les bases du scripting dans Unity