Instruções 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 disparar uma ação quando se aproximam de objetos na experiência, como portas, interruptores de luz e botões.Usando este Objeto, você pode:

  • Indique quais objetos um usuário pode interagir na experiência.
  • Exibe a ação que um usuário pode tomar no Objeto, então ativa a ação através da entrada do usuário, como pressionar ou segurar uma chave.
  • Exibe a entrada correta para todos os tipos de entrada, como teclado, controle / controle de jogoe teclas de toque.

Criar prompts de proximidade

Você deve encaminhar solicitações de proximidade a uma parte, modelo ou anexo com o qual você quer que o usuário interaja.Para adicionar um prompt de proximidade a um BasePart , Model ou Attachment Objeto:

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

  2. Do menu, insira um Prompt de Proximidade .

    Explorer hierarchy showing a ProximityPrompt parented to an Attachment

Personalizar solicitações de proximidade

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

Aparência

Os avisos de proximidade precisam comunicar três coisas:

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

Você pode especificar esses 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 vai gatilho.

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

  • GamepadKeyCode A tecla do gamepad que um usuário deve pressionar ou segurar para ativar a ação.

    Diagram indicating basic elements of a ProximityPrompt

Visibilidade

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

Distância Máxima de Ativação

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

Diagram indicating how a character's distance from a ProximityPrompt object affects whether the prompt appears on screen

Requer Linha de Visão

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

Exclusividade

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

ProximityPrompt objects set to exclusivity of OnePerButton
Apenas um prompt de proximidade é visível por código de entrada.Se vários prompts de proximidade dentro do alcance usarem diferentes códigos de chave, todos eles são visíveis.No entanto, se vários prompts de proximidade dentro do alcance usarem o mesmo código de chave, apenas um prompt de proximidade é visível a qualquer momento, dependendo da direção de 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.

Duração de Apoio

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 esta propriedade tiver um valor de 0, a ação do prompt de proximidade é acionada imediatamente.

Aviso Clicável

A propriedade ClickablePrompt especifica se um usuário pode clicar em um prompt de proximidade para ativar sua ação.Quando definido para verdade , um usuário pode interagir com o prompt de proximidade clicando diretamente no prompt de proximidade ou pressionando a chaveespecificada.Quando definido para falso , um usuário só pode interagir com o prompt de proximidade pressionando a chaveespecificada.

Prompts de proximidade de script

Você pode se conectar a eventos de solicitação de proximidade no próprio objeto ProximityPrompt ou globalmente através de ProximityPromptService .O ProximityPromptService permite que você gerencie todo o comportamento de solicitação de proximidade de um local, evitando qualquer necessidade de código duplicado em sua experiência.

EventoDescrição
PromptTriggeredIncêndios quando um jogador interage com um prompt de proximidade (depois da duração para um prompt com não zero HoldDuration ).
PromptTriggerEndedAtiva quando o jogador para de interagir com um prompt de proximidade.
PromptButtonHoldBeganIncêndios quando um jogador começa a interagir com um prompt de proximidade com um valor não zero HoldDuration .
PromptButtonHoldEndedDispara quando um jogador para de interagir com um prompt de proximidade com um valor não zero HoldDuration .
PromptShownGatilhos em LocalScripts quando um aviso de proximidade é feito visível.
PromptHiddenGatilhos em LocalScripts quando um prompt é ocultado.

O seguinte exemplo de código inclui um framework básico para usar ProximityPromptService :


local ProximityPromptService = game:GetService("ProximityPromptService")
-- Detectar quando o prompt é acionado
local function onPromptTriggered(promptObject, player)
end
-- Detectar quando o seguramento do prompt começa
local function onPromptHoldBegan(promptObject, player)
end
-- Detectar quando os limites de espera são mantidos
local function onPromptHoldEnded(promptObject, player)
end
-- Conectar eventos de solicitação às funções de processamento
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)