Biasanya, fungsi hanya dapat menggunakan informasi yang sudah ditentukan 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 paling cepat dengan huruf raksasa kepada semua orang. Anda tidak akan mengetahui nama pemenang di masa depan sampai perlombaan selesai.
Parameter adalah tempat untuk informasi yang ingin Anda berikan ke fungsi di kemudian hari. Mereka seperti jendela yang memungkinkan Anda untuk melewatkan informasi ke fungsi.
Gunakan parameter dan acara untuk mengatur jebakan
Skrip ini akan membuat bagian jebakan yang menghancurkan apa pun yang menyentuh bagian tersebut, termasuk bagian lainnya. Anda harus menggunakan parameter untuk mengaturnya. Hati-hati untuk menempatkan jebakan di tempat yang tidak jatuh dan menghancurkan barang secara tidak sengaja.
Buat bagian baru
Sebuah bagian perlu disiapkan yang akan menghancurkan apa pun yang menyentuhnya.
- Buat bagian baru yang tidak menyentuh apa pun. Jika menyentuh sesuatu, itu mungkin akan aktif terlalu cepat.
- Di Explorer, ubah nama bagian menjadi: TrapPart.
- Anchor bagian tersebut.
Siapkan skrip
Gunakan apa yang Anda ketahui tentang variabel dan hierarki pengalaman untuk merujuk ke bagian jebakan.
Tambahkan skrip baru ke dalam bagian jebakan. Ganti nama skrip menjadi TrapScript.
Hapus Hello World dan tambahkan komentar yang deskriptif.
Di bawah komentar, buat variabel baru yang menemukan induk skrip.
-- Menghancurkan apa pun yang menyentuh induknyalocal trap = script.Parent
Buat fungsi dengan parameter
Jebakan akan menggunakan fungsi untuk menghancurkan apa pun yang menyentuh bagian. Untuk bekerja, fungsi perlu mengetahui apa yang menyentuh bagian tersebut. Dan itu berarti menggunakan parameter. Parameter ditulis di dalam () yang datang setelah nama fungsi. Mereka terlihat seperti ini:
local function functionName(parameterName)
end
Informasi nyata yang dilewatkan melalui parameter disebut argumen. Anda akan membuat fungsi baru bernama onTouch() dengan parameter bernama objectTouched yang akan melacak apa pun yang menyentuh jebakan dan kemudian menghancurkan bagian yang menyentuh.
Buat fungsi lokal. Ini bisa dinamai 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)endAntara local function onTouch() dan end, buat pernyataan print. Anda akan menggunakan ini untuk memeriksa apakah sesuatu menyentuh bagian di bagian selanjutnya.
local trap = script.Parentlocal function onTouch(objectTouched)print("Sesuatu menyentuh jebakan")end
Gunakan acara untuk memanggil fungsi
Kami ingin fungsi berjalan setiap kali sesuatu menyentuh bagian tersebut. Untuk membuatnya terjadi, hubungkan fungsi tersebut ke acara Touched. Acara adalah hal-hal yang terjadi dalam pengalaman. Seperti seorang pemain menyentuh bagian atau kehilangan kesehatan. Ketika sebuah fungsi terhubung dengan sebuah acara, fungsi tersebut dijalankan setiap kali acara terjadi.
Acara Touched terjadi setiap kali satu bagian menyentuh bagian lainnya dan dapat digunakan untuk membuat tombol, jebakan, 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 jebakan")end-- Hubungkan fungsi ke acara Touchedtrap.Touched:Connect(onTouch)Klik Test dan kemudian sentuh bagian tersebut. Periksa pernyataan print uji Anda: Sesuatu menyentuh jebakan. Jika Anda tidak 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 sudah disiapkan dengan benar, gunakan itu untuk menghancurkan apa pun yang menyentuh bagian tersebut. Di dalam fungsi, setelah string, ketik objectTouched:Destroy() Kode yang selesai harus seperti ini:
local trap = script.Parentlocal function onTouch(objectTouched)print("Sesuatu menyentuh jebakan")-- Hancurkan objek yang menyentuhobjectTouched:Destroy()endtrap.Touched:Connect(onTouch)Uji kembali dan lihat apa yang terjadi saat bagian tersebut disentuh. Avatar Anda harus kehilangan kaki atau lengan. Jika bagian itu menyentuh kepala atau leher avatar, itu mungkin bahkan akan hancur sepenuhnya.
Ringkasan
Parameter digunakan untuk melewatkan informasi yang biasanya berada di luar jangkauan (di mana fungsi tidak dapat melihatnya), ke dalam fungsi. Sementara itu, acara adalah sinyal khusus yang berbunyi di dalam pengalaman ketika sesuatu yang penting terjadi. Berbagai objek memiliki acara yang berbeda. Fungsi dapat dihubungkan ke acara sehingga mereka dipanggil setiap kali acara tersebut terjadi. Skrip kecil ini menghubungkan fungsi ke acara Touched jebakan, dan melewatkan apa yang menyentuh jebakan melalui parameter.