Menu
CoddyTech

Traffico stradale

Fa parte della sezione Fondamenti di scripting in Unity del percorso Unity di Coddy. Lezione 83 di 85.

challenge icon

Sfida

Difficile

Fai avanzare le auto lungo la strada.

  1. Ogni spawnEvery secondi, genera un'auto in corrispondenza di (-9, 0.5, lanes[Random.Range(0, lanes.Length)]) e aggiungila a una lista.
  2. Sposta ogni auto lungo +x a carSpeed; quando supera x = 9, distruggila e rimuovila.
  3. Se un'auto si trova a meno di 1.5 di distanza sull'asse x e 1 sull'asse z, registra Hit! e rimanda il personaggio saltellante a start.

Premi «Gioca»: le auto sfrecciano. Poi premi «Verifica».

Provalo tu

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

        // Auto: la prossima lezione.
    }
}

Tutte le lezioni di Fondamenti di scripting in Unity

Esercitati da solo: Playground Unity