Menu
CoddyTech

Circulation routière

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

challenge icon

Défi

Difficile

Fais avancer des voitures sur la route.

  1. Toutes les spawnEvery secondes, fais apparaître une voiture à (-9, 0.5, lanes[Random.Range(0, lanes.Length)]) et ajoute-la à une liste.
  2. Déplace chaque voiture dans le sens +x à la vitesse carSpeed ; au-delà de x = 9, détruis-la et supprime-la de la liste.
  3. Si une voiture se trouve à moins de 1.5 sur l’axe x et de 1 sur l’axe z, affiche Hit! et renvoie le personnage qui saute à start.

Appuie sur « Jouer » : les voitures défilent. Puis appuie sur « Vérifier ».

Essayez vous-même

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

        // Les voitures : la prochaine leçon.
    }
}

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

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