Menu
CoddyTech

Bức tường

Bài học 5 trên 19 trong khóa học Trò chơi Unity: phá gạch của Coddy.

Các viên gạch xếp thành lưới: các hàng từ trên xuống dưới, các cột từ trái sang phải, mỗi viên là một bản sao của prefab Brick được tạo trong hai vòng lặp lồng nhau. Trước tiên, tạo một hàng:

float left = -(columns - 1) * spacingX / 2f;
for (int col = 0; col < columns; col++)
{
    Vector3 pos = new Vector3(left + col * spacingX, topY, 0f);
    Instantiate(brickPrefab, pos, Quaternion.identity, wall);
}

Giữa n cột có n trừ 1 khoảng cách, vì vậy cột đầu tiên nằm cách tâm sang trái một khoảng bằng một nửa (n - 1) * spacing: 5 cột cách nhau 2 đơn vị sẽ nằm ở các vị trí -4, -2, 0, 2 và 4. Mỗi hàng nằm thấp hơn hàng trước spacingY. Đối số thứ tư của Instantiate là đối tượng cha, vì vậy mỗi viên gạch nằm bên dưới đối tượng Wall. Khi trường prefab có kiểu tập lệnh như Brick, Instantiate trả về tập lệnh của viên gạch mới.

challenge icon

Thử thách

Trung bình

Dựng một bức tường gạch ở giữa.

  1. Trong GameManager, thêm public Brick brickPrefab;, public Transform wall;, rows = 5, columns = 9, spacingX = 1.75f, spacingY = 0.75f, topY = 6f.
  2. BuildWall(): đặt một viên gạch bên dưới wall cho mỗi hàng và cột, tại x left + col * spacingX, y topY - row * spacingY, z 0, với left = -(columns - 1) * spacingX / 2f.
  3. Start() gọi BuildWall().

Nhấn Chơi: 45 viên gạch xếp thành lưới (chúng chưa vỡ). Sau đó nhấn Kiểm tra.

Tự làm thử

using UnityEngine;

public class GameManager : MonoBehaviour
{
    public static GameManager Instance;

    void Awake()
    {
        Instance = this;
    }

    // Sau này: bức tường gạch, điểm số, số mạng và các cấp độ.
}

Tất cả bài học trong Trò chơi Unity: phá gạch

Tự luyện tập: Playground Unity