Menu
CoddyTech

Tráfico en la carretera

Parte de la sección Fundamentos de scripting en Unity del Journey de Unity de Coddy. Lección 83 de 85.

challenge icon

Desafío

Difícil

Envía coches por la carretera.

  1. Cada spawnEvery segundos, genera un coche en (-9, 0.5, lanes[Random.Range(0, lanes.Length)]) y añádelo a una lista.
  2. Mueve cada coche a lo largo del eje +x a carSpeed; cuando pase de x = 9, destrúyelo y elimínalo.
  3. Si un coche está a menos de 1.5 de distancia en x y a menos de 1 en z, registra Hit! y devuelve al personaje a start.

Pulsa «Jugar»: los coches pasan en fila. Después, pulsa «Comprobar».

Pruébalo tú mismo

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

        // Coches: la siguiente lección.
    }
}

Todas las lecciones de Fundamentos de scripting en Unity

Practica por tu cuenta: Playground de Unity