Menu
CoddyTech

Deixe-os Cair

Parte da seção Fundamentos de Scripting no Unity do Journey de Unity da Coddy. Lição 77 de 85.

challenge icon

Desafio

Médio

Faça todos os blocos da lista caírem. Mantenha tudo das etapas anteriores.

  1. Adicione [SerializeField] private float fallSpeed = 5f;.
  2. No final de Update(), percorra com foreach (GameObject block in blocks).
  3. Nele, adicione Vector3.down * fallSpeed * Time.deltaTime a block.transform.position.

Pressione “Jogar”: os blocos caem passando pelo corredor. Depois, pressione “Verificar”.

Experimente você mesmo

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));
        }
    }
}

Todas as lições de Fundamentos de Scripting no Unity

Pratique por conta própria: Playground de Unity