Menu
CoddyTech

Trânsito na estrada

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

challenge icon

Desafio

Difícil

Envie carros pela estrada.

  1. A cada spawnEvery segundos, gere um carro em (-9, 0.5, lanes[Random.Range(0, lanes.Length)]) e adicione-o a uma lista.
  2. Mova cada carro ao longo de +x na velocidade carSpeed; quando passar de x = 9, destrua-o e remova-o.
  3. Um carro a menos de 1.5 de distância no eixo x e 1 no eixo z registra Hit! e manda o personagem de volta para start.

Pressione “Jogar”: os carros passam em sequência. Depois, pressione “Verificar”.

Experimente você mesmo

using System.Collections.Generic;
using UnityEngine;

public class Crossing : MonoBehaviour
{
    [SerializeField] private GameObject carPrefab;
    [SerializeField] private float[] lanes;
    [SerializeField] private float spawnEvery = 1f;
    [SerializeField] private float carSpeed = 5f;

    private Vector3 start;

    void Start()
    {
        start = transform.position;
    }

    void Update()
    {
        if (Input.GetKeyDown(KeyCode.UpArrow))
        {
            transform.position += new Vector3(0f, 0f, 2f);
        }
        if (Input.GetKeyDown(KeyCode.DownArrow) && transform.position.z > start.z)
        {
            transform.position -= new Vector3(0f, 0f, 2f);
        }
        if (transform.position.z >= 4f)
        {
            Debug.Log("You made it!");
            enabled = false;
            return;
        }

        // Carros: a próxima lição.
    }
}

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

Pratique por conta própria: Playground de Unity