Solicitudes de proximidad

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

ProximityPrompt objetos fomentan la interacción del usuario para activar una acción cuando se acercan a objetos no experimentales como puertas, interruptores de luz y botones. Al usar este objeto, puede:

  • Indica qué objetos un usuario puede interactuar en la experiencia.
  • Muestra la acción que un usuario puede tomar en el objeto, luego activa la acción a través de la entrada del usuario, como presionar o mantener una clave.
  • Muestra la entrada correcta para todos los tipos de entrada, como un teclado, un controlador para juegoy teclas de pantalla táctil.

Creando Promptos de Proximidad

Debes añadir un mensaje de proximidad a la parte, aplicación de modeladoo atadura que quieres que el usuario interactúe. Para añadir un mensaje de proximidad a un objeto BasePart, Model o Attachment:

  1. En la ventana Explorer, pasa el cursor sobre el BasePart, Model o 1> Class.Arrow1> y haz clic en el botón ⊕. Se muestra un menú contextual.

  2. Del menú, inserta un ProximityPrompt .

    Explorer hierarchy showing a ProximityPrompt parented to an Attachment

Personalizar solicitudes de proximidad

Puedes personalizar una solicitud de proximidad en función de cómo quieres que aparezca, cuando quieras que sea visible y lo que quieres que haga el usuario para Activar la acción.

Apariencia

Las solicitudes de proximidad deben comunicar tres cosas:

  • El objeto que un usuario puede interactuar con.
  • La acción acción que se activa cuando interactúan con el mensaje de proximidad.
  • La clave que debe presionar o mantener un usuario.

Puede especificar estas a través de las siguientes propiedades:

  • ObjectText Un nombre opcional para el objeto con el que un usuario puede interactuar.

  • ActionText Un nombre opcional para la acción que un usuario desencadenador.

  • KeyboardKeyCode La tecla de teclado que debe presionar o mantener un usuario para activar la acción.

  • GamepadKeyCode La tecla del gamepad que debe presionar o mantener presionada para desencadenar la acción.

    Diagram indicating basic elements of a ProximityPrompt

Visibilidad

Puede controlar cuando el mensaje de proximidad es visible a través de su MaxActivationDistance , RequiresLineOfSight y Exclusivity propiedades.

Distancia de Activación Máxima

La propiedad MaxActivationDistance le permite definir el rango alrededor del objeto ProximityPrompt que activa la visibilidad del prompt de proximidad. Una vez que un personaje de un usuario ingresa a ese rango, el prompt de proximidad se hace visible.

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

Requiere línea de visión

La propiedad RequiresLineOfSight activa la visibilidad del提示 de proximidad cuando hay un camino claro desde la cámara a la objeto Class.ProximityPrompt . Por defecto, esta propiedad está configurada como verdadera.

Exclusividad

Si el personaje de un usuario está dentro del rango de múltiples invocaciones de proximidad, la visibilidad de cada invocación de proximidad depende de la invocación de proximidad a la que apunta la cámara, así como de la propiedad de propiedad Exclusivity de cada invocación de proximidad.

ProximityPrompt objects set to exclusivity of OnePerButton
Solo se muestra un mensaje de proximidad por cada código de entrada. Si se utilizan múltiples mensajes de proximidad en rango, se utilizan diferentes códigos de clave, todos son visibles. Sin embargo, si se utilizan múltiples mensajes de proximidad en rango, se muestra solo un mensaje de proximidad en rango en cualquier momento, dependiendo de la dirección de la cámara.

Interactividad

Puede personalizar cómo un usuario interactúa con un mensaje de proximidad a través de sus propiedades HoldDuration y ClickablePrompt.

Mantener Duración

La propiedad HoldDuration determina la cantidad de segundos que un usuario tiene que presionar una tecla antes de que se activa la acción del prom示. Si esta propiedad tiene un valor de 0 , el prom示 se activa inmediatamente.

Clickable

La propiedad ClickablePrompt especifica si un usuario puede hacer clic en un prom示 de proximidad para iniciar su acción. Cuando se establece en verdadero , un usuario puede interactuar con el prom示 de proximidad haciendo clic directamente en el prom示 de proximidad o presionando la claveespec

Proximity Prompts de Script

Puede conectarse a los eventos de proximidad solicitados en cualquier momento del objeto ProximityPrompt o globalmente a través de ProximityPromptService . El ProximityPromptService le permite administrar todo el comportamiento de solicitud de proximidad desde una ubicación, evitando la necesidad de duplicar el código en su experiencia.

EventoDescripción
PromptTriggeredSe activa cuando un jugador interactúa con un mensaje de proximidad (después de la duración para un mensaje con no-cero HoldDuration).
PromptTriggerEndedSe activa cuando el jugador deja de interactuar con una solicitud de proximidad.
PromptButtonHoldBeganSe activa cuando un jugador comienza a interactuar con un mensaje de proximidad con un valor no nulo de HoldDuration .
PromptButtonHoldEndedSe activa cuando un jugador deja de interactuar con un mensaje de proximidad con un valor no nulo de HoldDuration .
PromptShownActiva en LocalScripts cuando se hace visible un mensaje de proximidad.
PromptHiddenActiva en LocalScripts cuando se oculta un prom示.

El siguiente código de ejemplo incluye un marco básico para el uso de ProximityPromptService :


local ProximityPromptService = game:GetService("ProximityPromptService")
-- Detecta cuando se activa el mensaje
local function onPromptTriggered(promptObject, player)
end
-- Detecta cuando el modo de espera del modo de espera comienza
local function onPromptHoldBegan(promptObject, player)
end
-- Detecta cuando termina el ajuste de la solicitud
local function onPromptHoldEnded(promptObject, player)
end
-- Conectar eventos de prom示 para funciones de manejo
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)