Menu
CoddyTech

Дорожное движение

Часть раздела Основы скриптинга в Unity путешествия по Unity на Coddy. Урок 83 из 85.

challenge icon

Задание

Сложно

Отправляй машины по дороге.

  1. Каждые spawnEvery секунд создавай машину в точке (-9, 0.5, lanes[Random.Range(0, lanes.Length)]) и добавляй её в список.
  2. Перемещай каждую машину вдоль оси +x со скоростью carSpeed; когда она проедет дальше x = 9, уничтожай её и удаляй из списка.
  3. Если машина находится ближе чем на 1.5 по оси x и на 1 по оси z, выводи Hit! и возвращай персонажа в точку start.

Нажми «Играть»: машины будут проезжать мимо. Затем нажми «Проверить».

Попробуйте сами

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

        // Машины: в следующем уроке.
    }
}

Все уроки раздела Основы скриптинга в Unity

Потренируйтесь самостоятельно: Песочница Unity