Tạo đối tượng theo lưới
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 64 trên 85.
Vòng lặp bên trong vòng lặp sẽ duyệt qua mọi ô của một lưới: vòng lặp bên ngoài chọn một cột, vòng lặp bên trong đi dọc theo cột đó. Đặt Instantiate bên trong, mỗi ô sẽ có một đối tượng. Cách này tạo ra một sàn 3 x 3 từ các ô rộng 2 đơn vị, nên các ô cách nhau 2 đơn vị:
public GameObject tilePrefab;
void Start()
{
for (int x = 0; x < 3; x++)
{
for (int z = 0; z < 3; z++)
{
Vector3 spot = new Vector3(x * 2, 0, z * 2);
Instantiate(tilePrefab, spot, Quaternion.identity, transform);
}
}
}Các ô được đặt tại x = 0, 2, 4 và z = 0, 2, 4: tổng cộng chín ô, từ (0, 0, 0) đến (4, 0, 4). Các vòng lặp chạy trong Start() một lần. Nếu đặt chúng trong Update(), mỗi khung hình chúng sẽ thêm chín ô nữa.
Đối số thứ tư là đối tượng cha. Chín đối tượng Tile(Clone) riêng lẻ sẽ làm Hierarchy lộn xộn; truyền transform để đưa chúng vào bên dưới đối tượng gắn tập lệnh này, tức là Floor, nhờ vậy bạn có thể thu gọn chúng, di chuyển hoặc xóa chúng cùng nhau. Vị trí bạn truyền vào vẫn là vị trí trong thế giới.
Thử thách
Trung bìnhDựng một bức tường bằng các prefab Brick, rộng 4 viên và cao 5 viên.
- Trong
Start(), lặpctừ 0 đến 3 và bên trong đó lặprtừ 0 đến 4. - Trong vòng lặp bên trong, gọi
Instantiate(brickPrefab, new Vector3(-1.5f + c, 0.25f + r * 0.5f, 0), Quaternion.identity, transform). Đối số cuối cùng biến mỗi viên gạch thành con của Wall.
Nhấn Chơi: một bức tường gồm 20 viên gạch đứng trên mặt đất. Sau đó nhấn Kiểm tra.
Tự làm thử
using UnityEngine;
public class WallBuilder : MonoBehaviour
{
public GameObject brickPrefab;
void Start()
{
// 4 cột, mỗi cột 5 hàng gạch, mỗi viên gạch là đối tượng con của Wall này
}
}
Tất cả bài học trong Những kiến thức cơ bản về lập trình trong Unity
1C# cơ bản trong Unity
Xin chào, UnityBiếnSố thập phân cần có fVăn bản trong ConsoleBiến có thể ghi nhớIf và elseSo sánh các sốÔn tập: Thu thập xu7Vòng lặp và phương thức
Lặp lại với forVòng lặp lồng nhauViết phương thứcPhương thức trả lờiMảngÔn tập: Cầu thang2Làm cho nó chuyển động
Đặt khối lập phươngDi chuyển theo từng khung hìnhXoay mỗi giâyĐiều khiển bằng các phímÔn tập: Lái khối lập phương5Vectơ
Cộng vectơPhương hướngKhông gian cục bộ và không gian thế giớiTốc độ theo đường chéoKhoảng cách giữa các vậtVector3 là một structÔn tập: Người điều khiển drone8GameObject và thành phần
Tham chiếu trong InspectorLấy một thành phầnThành phần bị thiếuThêm một thành phầnRequireComponentHiện và ẩnÔn tập: Công tắc đèn11Prefab và tạo đối tượng
Prefab và InstantiateTạo đối tượng theo bộ hẹn giờTạo đối tượng theo lướiDanh sách đối tượngXóa đối tượng mới nhấtHủy đối tượngTạo đối tượng ngẫu nhiênÔn tập: Pháo hoa3Inspector
Các trường trong InspectorSerializeFieldSố thực và MathfThuộc tính trong InspectorÔn tập: thang máy6Biến đổi và hệ phân cấp
Đối tượng cha và conKéo cờ lênTỷ lệNhìn vào các vật thểDi chuyển đến một điểmÔn tập: Mặt trăng quay quanh9Dự án: Bắt lấy ngôi sao
Người bắt saoNgôi sao rơiTự luyện tập: Playground Unity