Menu
CoddyTech

Giao thông trên đường

Thuộc phần Những kiến thức cơ bản về lập trình trong Unity trong hành trình Unity của Coddy. Bài học 83 trên 85.

challenge icon

Thử thách

Khó

Cho xe chạy trên đường.

  1. Cứ mỗi spawnEvery giây, tạo một chiếc xe tại (-9, 0.5, lanes[Random.Range(0, lanes.Length)]) rồi thêm vào danh sách.
  2. Di chuyển từng chiếc xe theo hướng +x với tốc độ carSpeed; khi vượt qua x = 9, hủy và xóa xe đó.
  3. Nếu xe cách nhân vật nhảy không quá 1.5 trên trục x và 1 trên trục z, ghi nhật ký Hit! rồi đưa nhân vật về start.

Nhấn Chơi: xe nối đuôi nhau chạy qua. Sau đó nhấn Kiểm tra.

Tự làm thử

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

        // Xe ô tô: bài học tiếp theo.
    }
}

Tất cả bài học trong Những kiến thức cơ bản về lập trình trong Unity

Tự luyện tập: Playground Unity