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.
Thử thách
Trung bìnhDựng một bức tường gạch ở giữa.
- Trong
GameManager, thêmpublic Brick brickPrefab;,public Transform wall;,rows = 5,columns = 9,spacingX = 1.75f,spacingY = 0.75f,topY = 6f. BuildWall(): đặt một viên gạch bên dướiwallcho mỗi hàng và cột, tại xleft + col * spacingX, ytopY - row * spacingY, z 0, vớileft = -(columns - 1) * spacingX / 2f.Start()gọiBuildWall().
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