Indicaciones 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 alientan la interacción del usuario para activar una acción cuando se acercan a objetos de experiencia como puertas, interruptores de luz y botones.Usando este objeto, puedes:

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

Crear solicitudes de proximidad

Debes asignar los avisos de proximidad a la parte, aplicación de modeladoo adjunto con el que quieres que interactúe el usuario.Para agregar una solicitud de proximidad a un objeto BasePart, Model o Attachment:

  1. En la ventana Explorador, pasa el mouse sobre el BasePart, Model o Attachment y haz clic en el botón ⊕. Se muestra un menú contextual.

  2. Desde el menú, insira 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 quieres que sea visible , y lo que quieres que haga un usuario para activar la acción .

Apariencia

Los mensajes de proximidad deben comunicar tres cosas:

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

Puedes especificarlos 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 del teclado que un usuario debe presionar o mantener presionada para activar la acción.

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

    Diagram indicating basic elements of a ProximityPrompt

Visibilidad

Puedes controlar cuándo la ventana de proximidad es visible a través de sus propiedades MaxActivationDistance, RequiresLineOfSight y Exclusivity.

Distancia de activación máxima

La propiedad MaxActivationDistance te permite definir el rango alrededor del objeto ProximityPrompt que activa la visibilidad del aviso de proximidad.Una vez que el personaje de un usuario entra en ese rango, el indicador de proximidad se vuelve 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 activa la visibilidad del aviso de proximidad cuando hay un camino claro desde la cámara al objeto ].Por defecto, esta propiedad se establece en verdadero.

Exclusividad

Si el personaje de un usuario está dentro del rango de múltiples solicitudes de proximidad, la visibilidad de cada solicitud de proximidad depende del punto al que apunta la cámara, así como del valor de la propiedad de cada solicitud de proximidad Exclusivity.

ProximityPrompt objects set to exclusivity of OnePerButton
Solo una solicitud de proximidad es visible por cada código de entrada.Si varias solicitudes de proximidad dentro del alcance usan diferentes códigos de tecla, todas son visibles.Sin embargo, si varias solicitudes de proximidad dentro del rango utilizan el mismo código de tecla, solo una solicitud de proximidad es visible en cualquier momento, dependiendo de la dirección de vista de la cámara.

Interactividad

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

Duración de mantenimiento

La propiedad HoldDuration determina cuántos segundos tiene que presionar un usuario antes de que se active la acción del indicador de proximidad.Si esta propiedad tiene un valor de 0 , la acción del aviso de proximidad se activa inmediatamente.

Alerta haga clicable

La propiedad ClickablePrompt especifica si un usuario puede hacer clic en una solicitud de proximidad para activar su acción.Cuando se establece en verdadero , un usuario puede interactuar con la solicitud de proximidad haciendo clic directamente en la solicitud de proximidad o presionando la claveespecificada.Cuando se establece en falso , un usuario solo puede interactuar con la solicitud de proximidad presionando la claveespecificada.

Indicaciones de proximidad de script

Puedes conectarte a eventos de solicitud de proximidad en el propio objeto ProximityPrompt o globalmente a través de ProximityPromptService .El ProximityPromptService te permite administrar todo el comportamiento de la solicitud de proximidad desde una ubicación, evitando la necesidad de código duplicado en tu experiencia.

SucesoDescripción
PromptTriggeredSe enciende cuando un jugador interactúa con una solicitud de proximidad (después de la duración de una solicitud con un valor no nulo HoldDuration ).
PromptTriggerEndedSe activa cuando el jugador deja de interactuar con una solicitud de proximidad.
PromptButtonHoldBeganSe activa cuando un jugador comienza a interactuar con una solicitud de proximidad con un valor no nulo HoldDuration .
PromptButtonHoldEndedSe activa cuando un jugador deja de interactuar con una solicitud de proximidad con un valor no nulo HoldDuration .
PromptShownSe activan en LocalScripts cuando se hace visible una solicitud de proximidad.
PromptHiddenSe activan en LocalScripts cuando se oculta una solicitud.

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


local ProximityPromptService = game:GetService("ProximityPromptService")
-- Detectar cuando se activa la solicitud
local function onPromptTriggered(promptObject, player)
end
-- Detectar cuando comienza el mantenimiento de la solicitud
local function onPromptHoldBegan(promptObject, player)
end
-- Detectar cuando finaliza la retención de solicitudes
local function onPromptHoldEnded(promptObject, player)
end
-- Conectar eventos de solicitud a funciones de manejo
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)