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 incentivam a interação do usuário para acionar uma ação quando se aproximam de objetos do jogo, como portas, interruptores de luz e botões. Usando este objeto, você pode:

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

Criar prompts de proximidade

Você deve parentear os prompts de proximidade à 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 será exibido.

  2. No menu, insira um ProximityPrompt.

    Hierarquia do Explorer mostrando um ProximityPrompt parentado 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 segurar.

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

  • ObjectText Um nome opcional para o objeto com o qual 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 segurar para acionar a ação.

  • GamepadKeyCode A tecla do controle que um usuário deve pressionar ou segurar 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 a distância ao redor do objeto ProximityPrompt que ativa a visibilidade do prompt de proximidade. Uma vez que o personagem de um usuário entra nessa distância, o prompt de proximidade se torna visível.

Diagrama indicando como a distância de um personagem em relação 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 dentro do 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 tecla de entrada. Se vários prompts de proximidade em alcance usarem códigos de tecla diferentes, todos eles estarão visíveis. No entanto, se vários prompts de proximidade em alcance usarem o mesmo código de tecla, 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 de suas propriedades HoldDuration e ClickablePrompt.

HoldDuration

A propriedade HoldDuration determina quantos segundos um usuário tem para 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 será 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 só pode interagir com o prompt de proximidade pressionando a tecla especificada.

Script de prompts de proximidade

Você pode se conectar aos eventos do prompt de proximidade tanto no próprio objeto ProximityPrompt quanto globalmente através do ProximityPromptService. O ProximityPromptService permite que você gerencie todo o comportamento do prompt de proximidade de um único local, evitando a necessidade de código duplicado em seu jogo.

EventoDescrição
PromptTriggeredDispara quando um jogador interage com um prompt de proximidade (após a duração de um prompt com HoldDuration diferente de zero).
PromptTriggerEndedDispara 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 de HoldDuration diferente de zero.
PromptButtonHoldEndedDispara quando um jogador para de interagir com um prompt de proximidade com um valor de HoldDuration diferente de zero.
PromptShownDispara em LocalScripts quando um prompt de proximidade é tornado visível.
PromptHiddenDispara em 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 do prompt às funções de manipulação
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.