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ù elementi di informazione simile. Ad esempio, se desiderassi utilizzare una funzione per visualizzare il nome della persona che ha completato un corso obby nel modo più veloce possibile in lettere giganti per tutti. Non saprai il nome del futuro vincitore fino a quando la gara non è terminata.
I parametri sono dei 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 usare un parametro per impostarlo. Fai attenzione a ancorare la trappola dove non possa cadere e distruggere le cose inavvertitamente.
Crea una nuova parte
Deve essere impostata 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
Usa ciò che sai sui variabili e sulla gerarchia delle esperienze per riferirti 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 usare i parametri. I parametri sono digitati all'interno del () che segue il nome di una funzione. Si presentano in questo modo:
local function functionName(parameterName)
end
Le informazioni effettive che vengono passate attraverso il parametro sono chiamate argomenti. 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 in questa lezione utilizzeremo onTouch.
local trap = script.Parentlocal function onTouch()endAll'interno del (), scrivi un nome per il parametro. In questa lezione utilizzeremo 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 prossima sezione.
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 far accadere questo, collega la funzione all'evento Touched. Gli eventi sono cose che accadono nell'esperienza. 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 viene attivato 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 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)Fai clic su Test e poi tocca la parte. Controlla il tuo messaggio di stampa di prova: 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 maiuscola.
Ora che la funzione è stata configurata correttamente, utilizzala 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)Testa di nuovo e guarda cosa succede quando la parte è toccata. Il tuo avatar dovrebbe finire senza piedi o braccia. Se la parte tocca la testa o il collo dell'avatar, potrebbe addirittura essere completamente distrutta.
Riepilogo
I parametri vengono utilizzati per passare informazioni che normalmente sarebbero al di fuori del campo (dove una funzione non può vederle), in una funzione. Nel frattempo, gli eventi sono segnali speciali che si attivano all'interno dell'esperienza 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.