I pulsanti possono essere utilizzati dai giocatori per sbloccare nuove aree, dare punti e rivelare tesori. Ogni volta che un giocatore tocca un pulsante, dovrebbe fornire un feedback per far sapere ai giocatori che sta interagendo con esso, come cambiare colore o emettere suoni.
In questo esempio, il pulsante sarà utilizzato per attivare un ponte. Quando il pulsante è stato premuto, diventerà verde e i giocatori saranno in grado di utilizzare il ponte. Se il giocatore non ha premuto il pulsante, cadrà attraverso il ponte quando cercherà di camminarci sopra.
Crea un ponte
Inizia impostando il ponte.
Crea un'area nel tuo ambiente in cui i giocatori avranno bisogno di un ponte.
Crea un pezzo per il ponte e rinominalo in Ponte.
Seleziona il ponte, nella finestra Proprietà:
- Cambia Trasparenza a .5. Per la Trasparenza, 0 è visibile, 1 è invisibile.
- Seleziona Ancorato.
- Deseleziona Può collidere.
Quando testate l'esperienza, il ponte dovrebbe apparire nebbioso e le persone non dovrebbero essere in grado di camminarci sopra.

Crea il pulsante
Ora che il ponte è impostato, crea il pulsante.
Crea un nuovo pezzo chiamato Pulsante.
Cambia il colore del pulsante in rosso.
Ancorare il pulsante.
Sposta il pulsante in modo che fluttui leggermente e non tocchi nulla. Questo è per assicurarti che l'evento Toccato non venga attivato accidentalmente.

Rendi il pulsante interattivo
Questa volta, invece di utilizzare l'evento Toccato per creare una trappola, lo userai per creare un pulsante che rende il ponte utilizzabile. Per rendere il ponte collidabile, utilizza il codice bridge.CanCollide = true all'interno di una funzione personalizzata che viene eseguita quando un giocatore tocca il pulsante. Sai tutto il resto di cui hai bisogno per completare i passaggi seguenti.
Cerca di capirlo da solo prima di guardare la soluzione del codice.
- Inserisci un nuovo script nel pulsante chiamato AttivaPonte.
- Elimina Ciao Mondo.
- Crea variabili per il ponte e per il pulsante.
- Crea una funzione locale che fa quanto segue quando il pulsante viene toccato:
- Stampa "pulsante toccato".
- Cambia il colore del pulsante da rosso a verde quando viene toccato.
- Cambia la trasparenza del ponte a 0 per renderlo visibile.
- Rende il ponte utilizzabile utilizzando il codice bridge.CanCollide = true.
- Collega la funzione all'evento Toccato del pulsante.
- Testa lo script e assicurati che il ponte appaia quando il pulsante viene toccato.
Soluzione del Codice Di seguito è riportata una possibile soluzione al codice
-- Inserisci questo script nel pulsante
-- Rende il pulsante verde quando qualcosa tocca il pulsante.
local button = script.Parent
local bridge = workspace.Bridge
local function buttonPressed()
print("pulsante toccato")
button.Color = Color3.fromRGB(0, 170, 0)
bridge.Transparency = 0
bridge.CanCollide = true
end
button.Touched:Connect(buttonPressed)
Risolvi i problemi del tuo codice
Problema: Il ponte è già solido quando inizia l'esperienza. Assicurati che i pezzi siano Ancorati e non tocchino nulla. I pezzi potrebbero toccare qualcosa, come il terreno o un altro pezzo, e causare l'attivazione accidentale della funzione buttonPressed().
Problema: Ricevi un errore nella finestra di output che dice: "Bridge non è un membro valido di Workspace" Controlla quanto segue:
- Il nome del tuo ponte. Il ponte nel tuo script deve essere nominato esattamente come nell'Explorer.
- Che part.Touched:Connect(buttonPressed) sia al di fuori della funzione buttonPressed().
Sfida di codice opzionale
Lo script in questa lezione può anche essere utilizzato per mantenere porte che tengono i giocatori fuori da aree specifiche. Pratica le tue abilità di programmazione e fai quanto segue:
- Crea un pezzo porta.
- Crea un pulsante più lontano dalla porta.
- Cambia lo script in questa lezione in modo che faccia cambiare la trasparenza della porta e quindi il giocatore non può collidere con essa.
La tua versione potrebbe apparire in questo modo:
local button = script.Parent
-- Promemoria: Sostituisci il nome del pezzo, Cancello, con quello del tuo progetto
local gate = workspace.Gate
local function buttonPressed()
print("pulsante toccato")
-- Cambia il pulsante in rosso per fornire feedback al giocatore
button.BrickColor = BrickColor.Red() -- CAMBIA QUESTO
-- Rende il cancello invisibile
gate.Transparency = 1
-- Rende possibile al giocatore di attraversare il cancello
gate.CanCollide = false
end
button.Touched:Connect(buttonPressed)