Biasanya, fungsi hanya dapat menggunakan informasi yang telah dikodekan di dalamnya. Namun, terkadang Anda mungkin tidak tahu sebelumnya apa informasi itu, atau Anda ingin dapat menggunakan fungsi yang sama dengan beberapa informasi serupa. Misalnya, jika Anda ingin menggunakan fungsi untuk menampilkan nama orang yang menyelesaikan kursus obby dengan cepat dalam huruf besar kepada semua orang. Anda tidak akan tahu nama pemenang di masa depan sampai balapan selesai.
Parameter adalah tempat penampung untuk informasi yang ingin Anda berikan kepada fungsi di kemudian hari. Mereka seperti jendela yang memungkinkan Anda untuk mengirim informasi ke fungsi.
Gunakan parameter dan event untuk mengatur perangkap
Skrip ini akan membuat bagian perangkap yang menghancurkan apa pun yang menyentuh bagian tersebut, termasuk bagian lainnya. Anda harus menggunakan parameter untuk mengaturnya. Hati-hati untuk mengaitkan perangkap di tempat yang tidak jatuh dan menghancurkan sesuatu secara tidak sengaja.
Buat bagian baru
Sebuah bagian perlu diatur yang akan menghancurkan apa pun yang menyentuhnya.
- Buat bagian baru yang tidak menyentuh apa pun. Jika menyentuh sesuatu, mungkin akan aktif terlalu cepat.
- Di Explorer, ganti nama bagian tersebut menjadi: TrapPart.
- Anchor bagian tersebut.
Atur skrip
Gunakan apa yang Anda ketahui tentang variabel dan hierarki permainan untuk merujuk ke bagian perangkap.
Tambahkan skrip baru ke dalam bagian perangkap. Ganti nama skrip tersebut menjadi TrapScript.
Hapus Hello World dan tambahkan komentar deskriptif.
Di bawah komentar, buat variabel baru yang menemukan induk skrip.
-- Menghancurkan apa pun yang menyentuh induklocal trap = script.Parent
Buat fungsi dengan parameter
Perangkap akan menggunakan fungsi untuk menghancurkan apa pun yang menyentuh bagian tersebut. Agar berfungsi, fungsi perlu tahu apa yang menyentuh bagian tersebut. Dan itu berarti menggunakan parameter. Parameter ditulis di dalam () yang muncul setelah nama fungsi. Mereka terlihat seperti ini:
local function functionName(parameterName)
endInformasi aktual yang dikirim melalui parameter disebut argumen. Anda akan membuat fungsi baru bernama onTouch() dengan parameter bernama objectTouched yang akan melacak apa pun yang menyentuh perangkap dan kemudian menghancurkan bagian yang menyentuh tersebut.
Buat fungsi lokal. Namanya bisa apa saja, tetapi pelajaran ini akan menggunakan onTouch
local trap = script.Parentlocal function onTouch()endDi dalam (), ketik nama untuk parameter. Pelajaran ini akan menggunakan objectTouched.
local trap = script.Parentlocal function onTouch(objectTouched)endDi antara local function onTouch() dan end, buat pernyataan print. Anda akan menggunakan ini untuk memeriksa apakah sesuatu menyentuh bagian di bagian berikutnya.
local trap = script.Parentlocal function onTouch(objectTouched)print("Sesuatu menyentuh perangkap")end
Gunakan event untuk memanggil fungsi
Kami ingin fungsi dijalankan setiap kali sesuatu menyentuh bagian tersebut. Untuk membuat itu terjadi, hubungkan fungsi ke event Touched. Event adalah hal-hal yang terjadi dalam permainan. Seperti pemain yang menyentuh bagian atau kehilangan kesehatan. Ketika sebuah fungsi terhubung ke sebuah event, fungsi tersebut dijalankan setiap kali event terjadi.
Event Touched terjadi setiap kali satu bagian menyentuh bagian lainnya dan dapat digunakan untuk membuat tombol, perangkap, dan objek lain yang berinteraksi dengan pemain.
Di bawah end fungsi, ketik trap.Touched:Connect(onTouch)
local trap = script.Parentlocal function onTouch(objectTouched)print("Sesuatu menyentuh perangkap")end-- Hubungkan fungsi ke event Touchedtrap.Touched:Connect(onTouch)Klik Uji dan kemudian sentuh bagian tersebut. Periksa pernyataan print uji Anda: Sesuatu menyentuh perangkap. Jika Anda tidak dapat melihat string di jendela Output, periksa hal berikut:
- Pastikan string "Sesuatu menyentuh bagian!" berada di antara local function onTouch() dan end.
- Periksa bahwa Touched ditulis dengan huruf kapital.
Sekarang bahwa fungsi telah diatur dengan benar, gunakan untuk menghancurkan apa pun yang menyentuh bagian tersebut. Di dalam fungsi, setelah string, ketik objectTouched:Destroy() Kode yang selesai harus:
local trap = script.Parentlocal function onTouch(objectTouched)print("Sesuatu menyentuh perangkap")-- Hancurkan objek yang menyentuhobjectTouched:Destroy()endtrap.Touched:Connect(onTouch)Uji lagi dan lihat apa yang terjadi ketika bagian tersebut disentuh. Avatar Anda seharusnya kehilangan kaki atau lengan. Jika bagian tersebut menyentuh kepala atau leher avatar, mungkin bahkan akan dihancurkan sepenuhnya.
Ringkasan
Parameter digunakan untuk mengirim informasi yang biasanya berada di luar jangkauan (di mana fungsi tidak dapat melihatnya), ke dalam fungsi. Sementara itu, event adalah sinyal khusus yang berbunyi di dalam permainan ketika sesuatu yang penting terjadi. Objek yang berbeda memiliki event yang berbeda. Fungsi dapat dihubungkan ke event sehingga mereka dipanggil setiap kali event tersebut terjadi. Skrip kecil ini menghubungkan fungsi ke event Touched dari perangkap, dan mengirimkan apa yang menyentuh perangkap melalui parameter.