Menu
CoddyTech

Tembok

Pelajaran 5 dari 16 dalam kursus Game Unity: Brick Breaker di Coddy.

Batu bata tersusun dalam grid: baris dari atas ke bawah, kolom dari kiri ke kanan, masing-masing merupakan salinan prefab batu bata yang dibuat dalam dua perulangan bersarang. Posisi batu bata ditentukan dari nomor baris dan kolomnya dikalikan jarak antara pusat-pusat batu bata, yaitu ukuran batu bata ditambah celah kecil.

Untuk memusatkan grid pada x = 0, tentukan posisi kolom pertama. Di antara n kolom terdapat n minus 1 celah, jadi dengan jarak s, jarak antara pusat-pusat di kedua ujung adalah (n - 1) * s, dan pusat yang pertama berada setengah jarak itu ke kiri. Lima tiang pagar dengan jarak 2 unit:

int posts = 5;
float spacing = 2f;
float left = -(posts - 1) * spacing / 2f;
for (int i = 0; i < posts; i++)
{
    Instantiate(postPrefab, new Vector3(left + i * spacing, 0f, 3f), Quaternion.identity);
}

Tiang-tiang tersebut berada di -4, -2, 0, 2, dan 4: tiang pertama berada di -4, bukan -5, karena ada empat celah di antara lima tiang. Argumen keempat Instantiate, yaitu Transform induk, menempatkan setiap salinan di bawah satu object agar Hierarchy tetap rapi. Jika tipe field prefab adalah script, seperti Brick, Instantiate mengembalikan script salinan baru yang siap digunakan.

challenge icon

Tantangan

Sedang

Bangun dinding di GameManager:

  1. Tambahkan public Brick brickPrefab dan public Transform wall (scene menghubungkan prefab Brick dan object Wall), serta public int rows = 5, public int columns = 9, public float spacingX = 1.75f, public float spacingY = 0.75f, dan public float topY = 6f.
  2. Tulis void BuildWall(): buat satu brick untuk setiap baris dan kolom, lalu jadikan masing-masing anak dari wall. Baris 0 berada pada y = topY, dan setiap baris berada spacingY lebih rendah. Jarak antar kolom adalah spacingX, dan posisinya terpusat pada x = 0. Brick berada pada z = 0.
  3. Panggil BuildWall() dari Start().

Tekan Play dan pantulkan bola dari dinding (brick belum pecah), lalu tekan Check.

Coba sendiri

using UnityEngine;

public class GameManager : MonoBehaviour
{
    public static GameManager Instance;

    void Awake()
    {
        Instance = this;
    }

    // Nanti: dinding bata, skor, nyawa, dan level.
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Game Unity: Brick Breaker