Menu
CoddyTech

Ruch drogowy

Część sekcji Podstawy skryptów w Unity ścieżki Unity w Coddy. Lekcja 83 z 85.

challenge icon

Wyzwanie

Trudny

Wysyłaj samochody drogą.

  1. Co spawnEvery sekund twórz samochód w punkcie (-9, 0.5, lanes[Random.Range(0, lanes.Length)]) i dodawaj go do listy.
  2. Przesuwaj każdy samochód wzdłuż osi +x z prędkością carSpeed; gdy minie x = 9, zniszcz go i usuń.
  3. Jeśli samochód znajdzie się w odległości mniejszej niż 1.5 wzdłuż osi x i 1 wzdłuż osi z, zapisuje Hit! i odsyła skoczka z powrotem do start.

Naciśnij „Graj”: samochody będą przejeżdżać. Następnie naciśnij „Sprawdź”.

Spróbuj swoich sił

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

        // Samochody: następna lekcja.
    }
}

Wszystkie lekcje w sekcji Podstawy skryptów w Unity

Poćwicz samodzielnie: Edytor online Unity