32. Instance dan Explorer

Bab 31 menjelaskan bahwa sebuah experience Roblox adalah sebuah pohon berisi Instance. Bab ini akan membahas lebih dalam: apa itu Instance, cara melihatnya di Explorer, dan cara membuat serta mengubahnya dari kode — semuanya dalam sebuah Script di Studio.

Explorer adalah pohonnya

Buka Studio dengan template Baseplate. Panel Explorer (kanan atas) menampilkan experience sebagai pohon yang bisa dibuka-tutup:

game
 ├─ Workspace
 │   ├─ Baseplate
 │   └─ SpawnLocation
 ├─ Players
 ├─ ServerScriptService
 └─ ... service lainnya

Setiap baris adalah sebuah Instance: bisa berupa Part, Folder, Script, atau service. Masing-masing memiliki ClassName (jenisnya, seperti Part), sebuah Name yang ditampilkan di Explorer, properti-properti, dan sebuah Parent — yaitu Instance tempatnya berada.

Membuat Instance dari kode

Instance.new("ClassName") membuat sebuah Instance. Instance ini belum ada di dunia — ia berdiri sendiri sampai kamu memberinya parent:

local part = Instance.new("Part")
part.Name = "Platform"
part.Size = Vector3.new(8, 1, 8)
part.Position = Vector3.new(0, 5, 0)
part.Anchored = true
part.Parent = workspace

Buat sebuah Part, atur nama, ukuran, dan posisinya, kunci supaya tidak jatuh karena gravitasi, lalu tempatkan di workspace. Mengatur Parent membuatnya muncul di dunia dan di Explorer.

Vector3.new(x, y, z) adalah nilai 3D untuk ukuran dan posisi: x adalah kiri/kanan, y atas/bawah, z depan/belakang.

Atur properti-propertinya sebelum Parent. Begitu diberi parent, Part langsung aktif; mengatur ukuran dan warna terlebih dahulu mencegah kedipan di mana tampilannya terlihat salah sesaat.

Properti yang perlu diketahui

Sebuah Part punya banyak properti. Yang paling sering kamu butuhkan pertama kali:

Properti Yang dikontrol
Name Label yang tampil di Explorer.
Size Sebuah Vector3 — seberapa besar ukurannya.
Position Sebuah Vector3 — di mana titik tengahnya berada.
Anchored true = mengabaikan gravitasi dan tetap di tempat.
BrickColor Warnanya, misalnya BrickColor.new("Bright red").
Transparency 0 = padat, 1 = tidak terlihat.
CanCollide true = padat untuk pemain; false = bisa ditembus.
part.BrickColor = BrickColor.new("Bright yellow")
part.Transparency = 0
part.CanCollide = true

Menelusuri pohon dari kode

Temukan Instance dengan cara yang sama seperti kamu membaca Explorer — telusuri ke bawah dari game atau workspace:

  • workspace.Platform — child yang bernama Platform (error jika tidak ada).
  • workspace:FindFirstChild("Platform") — sama seperti di atas, tapi mengembalikan nil jika tidak ada alih-alih error — lebih aman diuji dengan if.
  • instance:GetChildren() — daftar child langsung, untuk di-loop dengan ipairs.
  • instance:Destroy() — menghapus sebuah Instance selamanya.
  • instance:Clone() — membuat salinan yang bisa diberi parent baru.
local coin = workspace:FindFirstChild("Coin")
if coin then
    coin:Destroy()
end

Semuanya menggunakan tanda titik dua karena merupakan method pada Instance — bentuk obj:method() dari Bab 26.

PR

Latihan-latihan ini tidak berjalan di terminal. Anggap saja sebagai latihan tulis: tulis kodenya, lalu cek halaman solusi. Untuk mencoba sungguhan, tempel masing-masing ke dalam sebuah Script di bawah ServerScriptService lalu tekan Play.

Soal 1 — Buat platform

Buka exercises/32/homework/01-platform.lua. Buat sebuah Part yang dikunci (anchored) bernama Platform, ukuran 10, 1, 10, di posisi 0, 8, 0, berwarna Bright green, dengan parent workspace.

Soal 2 — Atur properti sesuai urutan

Buka exercises/32/homework/02-order.lua. Potongan kode tersebut mengatur Parent terlebih dahulu, baru kemudian ukuran dan warna. Ubah urutannya sehingga setiap properti diatur sebelum Parent, dan tambahkan satu baris komentar yang menjelaskan alasannya.

Soal 3 — Pencarian yang aman

Buka exercises/32/homework/03-safe-find.lua. Gunakan FindFirstChild dan sebuah if, hapus Part bernama OldWall di workspace hanya jika ada; jika tidak, cetak nothing to remove.

Tantangan — Deretan tiang

Buka exercises/32/homework/04-pillars.lua. Menggunakan perulangan for, buat lima tiang yang dikunci (Part yang tinggi dan ramping) berjejer, berjarak beberapa stud di sepanjang sumbu x. Atur Position setiap tiang dari counter perulangan.

Bingung atau sudah selesai? Buka halaman solusi PR.