Pratica dei parametri - pulsanti

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

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 ricevere un feedback per far sapere ai giocatori che è stato interagito, come cambiare colore o emettere suoni.

In questo esempio, il pulsante verrà utilizzato per attivare un ponte. Quando il pulsante è stato premuto, diventerà verde e i giocatori potranno 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.

  1. Crea un'area nel tuo ambiente dove i giocatori avranno bisogno di un ponte.

  2. Crea un oggetto per il ponte e rinominalo Ponte.

  3. Seleziona il ponte, nella finestra Proprietà:

    • Cambia Trasparenza a .5. Per la Trasparenza, 0 è visibile, 1 è invisibile.
    • Seleziona Ancorato.
    • Deseleziona Può Collidere.
  4. Quando fai il playtest del gioco, il ponte dovrebbe apparire nebbioso e le persone non dovrebbero poterci camminare sopra.

Crea il pulsante

Ora che il ponte è impostato, crea il pulsante.

  1. Crea un nuovo oggetto chiamato Pulsante.

  2. Cambia il colore del pulsante in rosso.

  3. Ancorare il pulsante.

  4. Sposta il pulsante in modo che sia leggermente sospeso 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 utilizzerai per creare un pulsante che rende il ponte utilizzabile. Per rendere il ponte collidibile, 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 che ti serve per completare i seguenti passaggi.

Cerca di capire come fare da solo prima di guardare la soluzione del codice.

  1. Inserisci un nuovo script nel pulsante chiamato AttivaPonte.
  2. Elimina Hello World.
  3. Crea variabili per il ponte e per il pulsante.
  4. 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.
  5. Collega la funzione all'evento Toccato del pulsante.
  6. Testa lo script e assicurati che il ponte appaia quando il pulsante viene toccato.

Soluzione del Codice Di seguito è riportata una possibile soluzione del 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 il gioco inizia. Assicurati che le parti siano Ancorate e non tocchino nulla. Le parti potrebbero toccare qualcosa, come il terreno o un'altra parte, e causare l'attivazione accidentale della funzione buttonPressed().

Problema: Ricevi un errore nella finestra di Output che dice: "Il ponte non è un membro valido di Workspace" Controlla quanto segue:

  • La denominazione 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ò essere utilizzato anche per mantenere porte che tengono i giocatori fuori da aree specifiche. Esercita le tue abilità di codifica e fai quanto segue:

  • Crea un oggetto porta.
  • Crea un pulsante più lontano dalla porta.
  • Cambia lo script in questa lezione in modo che faccia cambiare la trasparenza della porta e che il giocatore non possa collidere con essa.

La tua versione potrebbe apparire in questo modo:

local button = script.Parent
-- Promemoria: Sostituisci il nome della parte, Cancello, con quello nel tuo progetto
local gate = workspace.Gate
local function buttonPressed()
print("pulsante toccato")
-- Cambia il pulsante in rosso per dare 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)
© 2026 Roblox Corporation. Roblox, il logo Roblox e Powering Imagination sono tra i nostri marchi registrati e non registrati negli Stati Uniti. e altri paesi.