Tombol dapat digunakan oleh pemain untuk membuka area baru, memberikan poin, dan mengungkapkan harta karun. Setiap kali pemain menyentuh tombol, seharusnya memberikan umpan balik agar pemain tahu tombol tersebut sedang diinteraksikan, seperti mengganti warna atau mengeluarkan suara.
Dalam contoh ini, tombol akan digunakan untuk mengaktifkan jembatan. Ketika tombol telah ditekan, tombol akan berwarna hijau dan pemain akan bisa menggunakan jembatan tersebut. Jika pemain belum menekan tombol, mereka akan jatuh melalui jembatan saat mencoba untuk berjalan di atasnya.
Buat jembatan
Mulai dengan mengatur jembatan.
Buat area di lingkungan Anda di mana pemain akan membutuhkan jembatan.
Buat bagian untuk jembatan dan beri nama Jembatan.
Pilih jembatan, di jendela Properties:
- Ubah Transparency menjadi .5. Untuk Transparency, 0 berarti terlihat, 1 berarti tidak terlihat.
- Centang Anchor.
- Hapus centang CanCollide.
Ketika Anda menguji pengalaman, jembatan seharusnya tampak berkabut dan orang-orang belum bisa berjalan di atasnya.

Buat tombol
Sekarang setelah jembatan diatur, buat tombol.
Buat bagian baru bernama Tombol.
Ubah warna tombol menjadi merah.
Anchor tombol.
Pindahkan tombol agar sedikit melayang dan tidak menyentuh apapun. Ini untuk memastikan acara Touched tidak secara tidak sengaja diaktifkan.

Buat tombol interaktif
Kali ini, alih-alih menggunakan acara Touched untuk membuat perangkap, Anda akan menggunakannya untuk membuat tombol yang membuat jembatan dapat digunakan. Untuk membuat jembatan bisa dihantam, gunakan kode bridge.CanCollide = true dalam fungsi kustom yang dijalankan saat pemain menyentuh tombol. Anda tahu semua yang Anda butuhkan untuk menyelesaikan langkah-langkah berikut.
Cobalah untuk menemukan solusinya sendiri sebelum melihat solusi kodenya.
- Masukkan script baru ke tombol yang bernama AktifkanJembatan.
- Hapus Hello World.
- Buat variabel untuk jembatan dan untuk tombol.
- Buat fungsi lokal yang melakukan hal berikut ketika tombol disentuh:
- Cetak "tombol disentuh".
- Ubah warna tombol dari merah menjadi hijau ketika disentuh.
- Ubah transparansi jembatan menjadi 0 agar terlihat.
- Buat jembatan bisa digunakan dengan menggunakan kode bridge.CanCollide = true.
- Hubungkan fungsi ke acara Touched tombol.
- Uji skrip dan pastikan jembatan muncul ketika tombol disentuh.
Solusi Kode Berikut adalah satu kemungkinan solusi kode
-- Masukkan skrip ini ke tombol
-- Mengubah tombol menjadi hijau ketika sesuatu menyentuh tombol.
local button = script.Parent
local bridge = workspace.Bridge
local function buttonPressed()
print("tombol disentuh")
button.Color = Color3.fromRGB(0, 170, 0)
bridge.Transparency = 0
bridge.CanCollide = true
end
button.Touched:Connect(buttonPressed)
Perbaiki kode Anda
Masalah: Jembatan sudah solid ketika pengalaman dimulai. Pastikan bagian-bagiannya ter-anchor dan tidak menyentuh apapun. Bagian-bagian tersebut mungkin menyentuh sesuatu, seperti terrain atau bagian lain, dan menyebabkan fungsi buttonPressed() diaktifkan secara tidak sengaja.
Masalah: Anda mendapatkan kesalahan di jendela Output yang mengatakan: "Jembatan bukan anggota Workspace yang valid" Periksa hal berikut:
- Penamaan jembatan Anda. Jembatan dalam skrip Anda harus dinamai persis seperti di Explorer.
- Bahwa part.Touched:Connect(buttonPressed) berada di luar fungsi buttonPressed().
Tantangan kode opsional
Skrip dalam pelajaran ini juga dapat digunakan untuk menjaga pintu agar tetap tertutup dari pemain yang masuk ke area tertentu. Latih keterampilan pemrograman Anda dan lakukan hal berikut:
- Buat bagian pintu.
- Buat tombol yang lebih jauh dari pintu.
- Ubah skrip dalam pelajaran ini sehingga pintu mengubah transparansi dan agar pemain tidak bisa berkolisi dengannya.
Versi Anda mungkin terlihat seperti ini:
local button = script.Parent
-- Pengingat: Ganti nama bagian, Gerbang, dengan yang ada di proyek Anda
local gate = workspace.Gate
local function buttonPressed()
print("tombol disentuh")
-- Mengubah tombol menjadi merah untuk memberikan umpan balik kepada pemain
button.BrickColor = BrickColor.Red() -- GANTI INI
-- Membuat gerbang tidak terlihat
gate.Transparency = 1
-- Membuatnya sehingga pemain bisa berjalan melalui gerbang
gate.CanCollide = false
end
button.Touched:Connect(buttonPressed)