Menu
CoddyTech

Laissez-les tomber

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

challenge icon

Défi

Moyen

Fais tomber chaque bloc de la liste. Garde tout le contenu des étapes précédentes.

  1. Ajoute [SerializeField] private float fallSpeed = 5f;.
  2. À la fin de Update(), parcours la liste avec foreach (GameObject block in blocks).
  3. À l’intérieur de la boucle, ajoute Vector3.down * fallSpeed * Time.deltaTime à block.transform.position.

Appuie sur « Jouer » : les blocs tombent devant le coureur. Puis appuie sur « 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;

    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 -= spawnEvery;
            Vector3 spot = new Vector3(Random.Range(-laneEdge, laneEdge), 10f, 0f);
            blocks.Add(Instantiate(blockPrefab, spot, Quaternion.identity));
        }
    }
}

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

Entraînez-vous par vous-même : Playground Unity