Usando Parâmetros e Eventos

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

Normalmente, as funções só podem usar as informações que codificaram nelas. Às vezes, no entanto, você pode não saber com antecedência qual será essa informação, ou você quer poder reutilizar a mesma função com várias peças de informações semelhantes. Por exemplo, se você quiser usar uma função para exibir o nome da pessoa que terminou uma corrida de obby mais rápido em letras gigantes para todos. Você não saberá o nome do futuro vencedor até que a corrida seja terminada. Parâmetros são espaços reservados para informações que você deseja dar à função mais tarde. Eles são como janelas que permitem que você passe informações para a função.

Use parâmetros e eventos para configurar uma armadilha

Este script criará uma parte de armadilha que destrói qualquer coisa que toque na parte, incluindo outras partes. Você terá que usar um parâmetro para configurá-lo. Tenha cuidado em ancorar a armadilha onde ela não caia e destrua as coisas involuntariamente.

Criar uma nova peça

Uma parte precisa ser configurada que destruirá qualquer coisa que a toque.

  1. Crie uma nova peça que não esteja tocando nada. Se estiver tocando algo, pode explodir muito cedo.
  2. No Explorador, renomeie a parte:TrapPart.
  3. Ancore a peça.

Configurar o Script

Use o que você sabe sobre variáveis e a hierarquia de experiência para fazer referência à parte da armadilha.

  1. Adicione um novo script na parte da armadilha. Renomeie o script TrapScript .

  2. Exclua Hello World e adicione um comentardescritivo.

  3. Sob o comentar, crie uma nova variável que encontre o pai do script.


    -- Destrói qualquer coisa que toque no pai
    local trap = script.Parent

Criar uma função com um parâmetro

A armadilha usará uma função para destruir qualquer coisa que tenha tocado a peça. Para funcionar, a função precisa saber o que tocou a peça. E isso significa usar parâmetros. Parâmetros são digitados dentro do () que vem após o nome de uma função. Eles se parecem com isso:


local function functionName(parameterName)
end

A informação real que é passada através do parâmetro é chamada de argumento **** . Você criará uma nova função chamada onTouch() com um parâmetro chamado objectTouched que rastreará o que quer que toque na armadilha e depois destruirá a parte tocante.

  1. Crie uma função local. Pode ser chamado de qualquer coisa, mas esta lição usará onTouch


    local trap = script.Parent
    local function onTouch()
    end
  2. Dentro do () , digite um nome para o parâmetro. Esta lição usará o objeto Touched.


    local trap = script.Parent
    local function onTouch(objectTouched)
    end
  3. Entre local function onTouch() e end, crie uma declaração de impressão. Você usará isso para verificar se algo está tocando a peça na próxima seção.


    local trap = script.Parent
    local function onTouch(objectTouched)
    print("Something touched the trap")
    end

Use um evento para chamar a função

Queremos que a função corra sempre que algo tocar na peça. Para fazer isso acontecer, conecte a função ao evento Touched. Eventos são coisas que acontecem na experiência. Como um jogador tocando uma peça ou perdendo vida. Quando uma função está conectada a um evento, a função funciona sempre que o evento acontece.

O evento Touched dispara sempre que uma parte toca outra parte e pode ser usado para criar botões, armadilhas e outros objetos com os quais os jogadores interagem.

  1. Debaixo do end da função, Connecttrap.Touched:Connect(onTouch)


    local trap = script.Parent
    local function onTouch(objectTouched)
    print("Something touched the trap")
    end
    -- Conecte a função ao evento Tocado
    trap.Touched:Connect(onTouch)
  2. Clique em Testar e depois toque na peça. Verifique se há uma declaração de impressão de teste: Something touched the trap . Se você não conseguir ver a string na janela de saída, verifique o seguindo:

    • Certifique-se de que a string "Algo tocou na peça!" esteja entre a função local onTouch () e o terminar/parar/sair.
    • Verifique se Touched está capitalizado.
  3. Agora que a função está configurada corretamente, use-a para destruir qualquer coisa que toque na peça. Dentro da função, após a string / cadeia / texto, digite objectTouched:Destroy() O código concluído deve ser:


    local trap = script.Parent
    local function onTouch(objectTouched)
    print("Something touched the trap")
    -- Destrua o Objetotocante
    objectTouched:Destroy()
    end
    trap.Touched:Connect(onTouch)
  4. Teste novamente e veja o que acontece quando a parte é tocada. Seu avatar deve acabar faltando pés ou braços. Se a parte tocar a cabeça ou o pescoço do avatar, ela pode até ser completamente destruída.

Resumo

Parâmetros são usados para passar informações que normalmente estariam fora do escopo (onde uma função não pode vê-la), em uma função. Enquanto isso, eventos são sinais especiais que saem dentro da experiência quando algo importante acontece. Objetos diferentes têm eventos diferentes. Funções podem ser conectadas a eventos para que sejam chamadas sempre que o evento é disparado. Este pequeno script conectou uma função ao evento Touched da armadilha e passou no que estava tocando a armadilha através do parâmetro.