Prompts de Proximidade

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

ProximityPrompt objetos encorajam a interação do usuário para acionar uma ação quando se aproximam de objetos em experiência, como portas, interruptores de luz e botões. Usando este objeto, você pode:

  • Indicar quais objetos um usuário pode interagir dentro da experiência.
  • Exibir a ação que um usuário pode realizar no objeto e, em seguida, acionar a ação por meio de entradas do usuário, como pressionar ou manter uma tecla.
  • Exibir a entrada correta para todos os tipos de entrada, como teclado, controle de jogo e teclas de tela sensível ao toque.

Criar prompts de proximidade

Você deve adicionar prompts de proximidade ao parte, modelo ou anexo com o qual deseja que um usuário interaja. Para adicionar um prompt de proximidade a um objeto BasePart, Model ou Attachment:

  1. Na janela Explorer, passe o mouse sobre o BasePart, Model ou Attachment e clique no botão ⊕. Um menu contextual é exibido.

  2. No menu, insira um ProximityPrompt.

    Hierarquia do Explorer mostrando um ProximityPrompt anexado a um Attachment

Personalizar prompts de proximidade

Você pode personalizar um prompt de proximidade com base em como deseja que ele apareça, quando deseja que ele seja visível e o que deseja que um usuário faça para acionar a ação.

Aparência

Os prompts de proximidade precisam comunicar três coisas:

  • O objeto com o qual um usuário pode interagir.
  • A ação que é acionada quando eles interagem com o prompt de proximidade.
  • A tecla que um usuário deve pressionar ou manter.

Você pode especificar isso através das seguintes propriedades:

  • ObjectText Um nome opcional para o objeto que um usuário pode interagir.

  • ActionText Um nome opcional para a ação que um usuário irá acionar.

  • KeyboardKeyCode A tecla do teclado que um usuário deve pressionar ou manter para acionar a ação.

  • GamepadKeyCode A tecla do controle que um usuário deve pressionar ou manter para acionar a ação.

    Diagrama indicando os elementos básicos de um ProximityPrompt

Visibilidade

Você pode controlar quando o prompt de proximidade é visível através de suas propriedades MaxActivationDistance, RequiresLineOfSight e Exclusivity.

MaxActivationDistance

A propriedade MaxActivationDistance permite que você defina o alcance ao redor do objeto ProximityPrompt que ativa a visibilidade do prompt de proximidade. Assim que o personagem de um usuário entrar nesse alcance, o prompt de proximidade se torna visível.

Diagrama indicando como a distância de um personagem a um objeto ProximityPrompt afeta se o prompt aparece na tela

RequiresLineOfSight

A propriedade RequiresLineOfSight ativa a visibilidade do prompt de proximidade quando há um caminho claro da câmera para o objeto ProximityPrompt. Por padrão, essa propriedade é definida como verdadeira.

Exclusividade

Se o personagem de um usuário estiver ao alcance de vários prompts de proximidade, a visibilidade de cada prompt de proximidade depende de qual prompt de proximidade a câmera está apontando, bem como do valor da propriedade Exclusivity de cada prompt de proximidade.

Objetos ProximityPrompt configurados para exclusividade de OnePerButton
Apenas um prompt de proximidade é visível por código de chave de entrada. Se vários prompts de proximidade em alcance usarem códigos de chave diferentes, todos eles são visíveis. No entanto, se vários prompts em alcance usarem o mesmo código de chave, apenas um prompt de proximidade será visível a qualquer momento, dependendo da direção da visão da câmera.

Interatividade

Você pode personalizar como um usuário interage com um prompt de proximidade através das propriedades HoldDuration e ClickablePrompt.

HoldDuration

A propriedade HoldDuration determina quantos segundos um usuário deve pressionar uma tecla antes que a ação do prompt de proximidade seja acionada. Se essa propriedade tiver um valor de 0, a ação do prompt de proximidade é acionada imediatamente.

ClickablePrompt

A propriedade ClickablePrompt especifica se um usuário pode clicar em um prompt de proximidade para acionar sua ação. Quando definida como true, um usuário pode interagir com o prompt de proximidade clicando diretamente no prompt de proximidade ou pressionando a tecla especificada. Quando definida como false, um usuário pode apenas interagir com o prompt de proximidade pressionando a tecla especificada.

Script prompts de proximidade

Você pode se conectar aos eventos de prompts de proximidade, seja no próprio objeto ProximityPrompt ou globalmente através do ProximityPromptService. O ProximityPromptService permite gerenciar todo o comportamento dos prompts de proximidade de um único local, evitando a necessidade de código duplicado em sua experiência.

EventoDescrição
PromptTriggeredDispara quando um jogador interage com um prompt de proximidade (após a duração para um prompt com HoldDuration diferente de zero).
PromptTriggerEndedAciona quando o jogador para de interagir com um prompt de proximidade.
PromptButtonHoldBeganDispara quando um jogador começa a interagir com um prompt de proximidade com um valor HoldDuration diferente de zero.
PromptButtonHoldEndedDispara quando um jogador para de interagir com um prompt de proximidade com um valor HoldDuration diferente de zero.
PromptShownAciona nos LocalScripts quando um prompt de proximidade é tornado visível.
PromptHiddenAciona nos LocalScripts quando um prompt é ocultado.

O seguinte exemplo de código inclui uma estrutura básica para usar o ProximityPromptService:


local ProximityPromptService = game:GetService("ProximityPromptService")
-- Detectar quando o prompt é acionado
local function onPromptTriggered(promptObject, player)
end
-- Detectar quando o hold do prompt começa
local function onPromptHoldBegan(promptObject, player)
end
-- Detectar quando o hold do prompt termina
local function onPromptHoldEnded(promptObject, player)
end
-- Conectar eventos de prompts a funções de tratamento
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)
©2026 Roblox Corporation, Roblox, o logotipo Roblox e Powering Imagination estão entre nossas marcas registradas e não registradas nos EUA e em outros países.