Os botões podem ser usados pelos jogadores para desbloquear novas áreas, dar pontos e revelar tesouros. Sempre que um jogador toca em um botão, ele deve fornecer algum feedback para informar aos jogadores que está sendo interagido, como mudar de cor ou fazer sons.
Neste exemplo, o botão será usado para ativar uma ponte. Quando o botão for pressionado, ele ficará verde e os jogadores poderão usar a ponte. Se o jogador não pressionou o botão, ele cairá pela ponte quando tentar andar sobre ela.
Fazer uma ponte
Comece configurando a ponte.
Crie uma área em seu ambiente onde os jogadores precisarão de uma ponte.
Crie uma parte para a ponte e renomeie-a para Ponte.
Selecione a ponte, na janela de Propriedades:
- Mude a Transparência para .5. Para Transparência, 0 é visível, 1 é invisível.
- Marque Ancorar.
- Desmarque Pode Colidir.
Quando você testar o jogo, a ponte deve parecer nebulosa e as pessoas não devem conseguir andar sobre ela ainda.

Criar o botão
Agora que a ponte está configurada, crie o botão.
Crie uma nova parte chamada Botão.
Mude a cor do botão para vermelho.
Ancore o botão.
Mova o botão para que ele fique levemente flutuando e não toque em nada. Isso é para garantir que o evento Tocado não dispare acidentalmente.

Tornar o botão interativo
Desta vez, em vez de usar o evento Tocado para criar uma armadilha, você o usará para criar um botão que torna a ponte utilizável. Para tornar a ponte colidível, use o código bridge.CanCollide = true dentro de uma função personalizada que é executada quando um jogador toca no botão. Você sabe tudo o que precisa para completar as etapas a seguir.
Tente descobrir por conta própria antes de olhar a solução do código.
- Insira um novo script no botão chamado AtivarPonte.
- Exclua Olá Mundo.
- Crie variáveis para a ponte e para o botão.
- Crie uma função local que faça o seguinte quando o botão for tocado:
- Imprima "botão tocado".
- Mude a cor do botão de vermelho para verde quando tocado.
- Mude a transparência da ponte para 0 para torná-la visível.
- Torne a ponte utilizável usando o código bridge.CanCollide = true.
- Conecte a função ao evento Tocado do botão.
- Teste o script e certifique-se de que a ponte aparece quando o botão é tocado.
Solução do Código Abaixo está uma possível solução de código
-- Insira este script no botão
-- Torna o botão verde quando algo toca o botão.
local button = script.Parent
local bridge = workspace.Bridge
local function buttonPressed()
print("botão tocado")
button.Color = Color3.fromRGB(0, 170, 0)
bridge.Transparency = 0
bridge.CanCollide = true
end
button.Touched:Connect(buttonPressed)Solucionar problemas no seu código
Problema: A ponte já está sólida quando o jogo começa. Certifique-se de que as partes estão Ancoradas e não tocam em nada. As partes podem tocar em algo, como terreno ou outra parte, e causar a função buttonPressed() a disparar acidentalmente.
Problema: Você recebe um erro na janela de Saída dizendo: "A Ponte não é um membro válido do Workspace" Verifique o seguinte:
- O nome da sua ponte. A ponte em seu script deve ser nomeada exatamente como no Explorador.
- Que part.Touched:Connect(buttonPressed) está fora da função buttonPressed().
Desafio de código opcional
O script nesta lição também pode ser usado para manter portas que mantêm os jogadores fora de áreas específicas. Pratique suas habilidades de codificação e faça o seguinte:
- Crie uma parte de porta.
- Crie um botão mais longe da porta.
- Mude o script nesta lição para que ele faça a porta mudar de transparência e para que o jogador não possa colidir com ela.
Sua versão pode parecer algo assim:
local button = script.Parent
-- Lembrete: Substitua o nome da parte, Portão, pelo que está em seu projeto
local gate = workspace.Gate
local function buttonPressed()
print("botão tocado")
-- Muda o botão para vermelho para dar feedback ao jogador
button.BrickColor = BrickColor.Red() -- MUDAR ISSO
-- Torna o portão invisível
gate.Transparency = 1
-- Faz com que o jogador possa passar pelo portão
gate.CanCollide = false
end
button.Touched:Connect(buttonPressed)