Normalmente, le funzioni possono utilizzare solo le informazioni che hanno codificato al loro interno. Tuttavia, a volte potresti non sapere in anticipo quali saranno queste informazioni, oppure vuoi essere in grado di riutilizzare la stessa funzione con più pezzi di informazioni simili. Ad esempio, se volessi utilizzare una funzione per visualizzare il nome della persona che ha completato un corso obby nel minor tempo possibile in lettere giganti per tutti. Non conoscerai il nome del futuro vincitore fino a quando la gara non sarà finita.
I parametri sono segnaposto per le informazioni che desideri fornire alla funzione in un secondo momento. Sono come finestre che ti permettono di passare informazioni alla funzione.
Utilizzare parametri ed eventi per impostare una trappola
Questo script creerà una parte trappola che distrugge qualsiasi cosa tocchi la parte, comprese altre parti. Dovrai utilizzare un parametro per impostarla. Fai attenzione ad ancorare la trappola in un luogo dove non possa cadere e distruggere le cose involontariamente.
Crea una nuova parte
È necessario impostare una parte che distruggerà qualsiasi cosa la tocchi.
- Crea una nuova parte che non tocchi nulla. Se tocca qualcosa, potrebbe attivarsi troppo presto.
- Nell'Explorer, rinomina la parte: TrapPart.
- Ancorare la parte.
Imposta lo script
Utilizza ciò che sai sui variabili e sulla gerarchia del gioco per fare riferimento alla parte trappola.
Aggiungi un nuovo script nella parte trappola. Rinomina lo script TrapScript.
Elimina Hello World e aggiungi un commento descrittivo.
Sotto il commento, crea una nuova variabile che trova il genitore dello script.
-- Distrugge qualsiasi cosa tocchi il genitorelocal trap = script.Parent
Crea una funzione con un parametro
La trappola utilizzerà una funzione per distruggere qualsiasi cosa tocchi la parte. Per funzionare, la funzione deve sapere cosa ha toccato la parte. E questo significa utilizzare i parametri. I parametri sono scritti all'interno del () che segue il nome di una funzione. Hanno questo aspetto:
local function functionName(parameterName)
endLe informazioni reali che vengono passate attraverso il parametro sono chiamate argomento. Creerai una nuova funzione chiamata onTouch() con un parametro chiamato objectTouched che traccerà qualsiasi cosa tocchi la trappola e poi distruggerà la parte che tocca.
Crea una funzione locale. Può essere chiamata in qualsiasi modo, ma questa lezione utilizzerà onTouch
local trap = script.Parentlocal function onTouch()endAll'interno del (), digita un nome per il parametro. Questa lezione utilizzerà objectTouched.
local trap = script.Parentlocal function onTouch(objectTouched)endTra local function onTouch() e end, crea una dichiarazione di stampa. Utilizzerai questo per controllare se qualcosa sta toccando la parte nella sezione successiva.
local trap = script.Parentlocal function onTouch(objectTouched)print("Qualcosa ha toccato la trappola")end
Usa un evento per chiamare la funzione
Vogliamo che la funzione venga eseguita ogni volta che qualcosa tocca la parte. Per farlo, collega la funzione all'evento Touched. Gli eventi sono cose che accadono nel gioco. Come un giocatore che tocca una parte o perde salute. Quando una funzione è collegata a un evento, la funzione viene eseguita ogni volta che si verifica l'evento.
L'evento Touched si attiva ogni volta che una parte tocca un'altra parte e può essere utilizzato per creare pulsanti, trappole e altri oggetti con cui i giocatori interagiscono.
Sotto il end della funzione, digita trap.Touched:Connect(onTouch)
local trap = script.Parentlocal function onTouch(objectTouched)print("Qualcosa ha toccato la trappola")end-- Collega la funzione all'evento Touchedtrap.Touched:Connect(onTouch)Clicca su Test e poi tocca la parte. Controlla la tua dichiarazione di stampa di test: Qualcosa ha toccato la trappola. Se non riesci a vedere la stringa nella finestra di Output, controlla quanto segue:
- Assicurati che la stringa "Qualcosa ha toccato la parte!" sia tra local function onTouch() e end.
- Controlla che Touched sia scritto con la lettera maiuscola.
Ora che la funzione è impostata correttamente, usala per distruggere qualsiasi cosa tocchi la parte. All'interno della funzione, dopo la stringa, digita objectTouched:Destroy() Il codice completato dovrebbe essere:
local trap = script.Parentlocal function onTouch(objectTouched)print("Qualcosa ha toccato la trappola")-- Distruggi l'oggetto che toccaobjectTouched:Destroy()endtrap.Touched:Connect(onTouch)Prova di nuovo e guarda cosa succede quando la parte viene toccata. Il tuo avatar dovrebbe finire senza piedi o braccia. Se la parte tocca la testa o il collo dell'avatar, potrebbe anche essere completamente distrutta.
Riepilogo
I parametri vengono utilizzati per passare informazioni che normalmente sarebbero fuori portata (dove una funzione non può vederle), in una funzione. Nel frattempo, gli eventi sono segnali speciali che si attivano all'interno del gioco quando accade qualcosa di importante. Diversi oggetti hanno eventi diversi. Le funzioni possono essere collegate agli eventi in modo che vengano chiamate ogni volta che l'evento viene attivato. Questo piccolo script ha collegato una funzione all'evento Touched della trappola e ha passato ciò che toccava la trappola attraverso il parametro.