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

  • Indicar qué objetos puede interactuar un usuario en la experiencia.
  • Mostrar la acción que puede realizar un usuario en el objeto y luego activar la acción a través de la entrada del usuario, como presionar o mantener una tecla.
  • Mostrar la entrada correcta para todos los tipos de entrada, como teclado, gamepad y teclas de pantalla táctil.

Crear indicaciones de proximidad

Debes parentar las indicaciones de proximidad a la parte, modelo o accesorio con el que deseas que un usuario interactúe. Para agregar una indicación de proximidad a un objeto BasePart, Model o Attachment:

  1. En la ventana Explorer, coloca el cursor sobre el BasePart, Model o Attachment y haz clic en el botón ⊕. Se mostrará un menú contextual.

  2. Desde el menú, inserta un ProximityPrompt.

    Jerarquía del Explorer mostrando una ProximityPrompt parentada a un Attachment

Personalizar indicaciones de proximidad

Puedes personalizar una indicación de proximidad según cómo quieres que aparezca, cuándo quieres que sea visible y qué quieres que un usuario haga para activar la acción.

Apariencia

Las indicaciones de proximidad necesitan comunicar tres cosas:

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

Puedes especificar esto 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 activará.

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

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

    Diagrama que indica elementos básicos de una ProximityPrompt

Visibilidad

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

MaxActivationDistance

La propiedad MaxActivationDistance te permite definir el rango alrededor del objeto ProximityPrompt que activa la visibilidad de la indicación de proximidad. Una vez que el personaje de un usuario entra en ese rango, la indicación de proximidad se vuelve visible.

Diagrama que indica cómo la distancia de un personaje respecto a un objeto ProximityPrompt afecta si la indicación aparece en la pantalla

RequiresLineOfSight

La propiedad RequiresLineOfSight activa la visibilidad de la indicación de proximidad cuando hay un camino claro desde la cámara hasta el objeto ProximityPrompt. Por defecto, esta propiedad está configurada en verdadero.

Exclusividad

Si el personaje de un usuario está dentro del rango de múltiples indicaciones de proximidad, la visibilidad de cada indicación de proximidad depende de cuál de ellas esté apuntando la cámara, además del valor de la propiedad Exclusivity de cada indicación de proximidad.

Objetos ProximityPrompt configurados para la exclusividad de OnePerButton
Solo una indicación de proximidad es visible por código de entrada de tecla. Si múltiples indicaciones de proximidad en rango utilizan diferentes códigos de tecla, todas son visibles. Sin embargo, si múltiples indicaciones de proximidad en rango utilizan el mismo código de tecla, solo una indicación de proximidad es visible en un momento dado, dependiendo de la dirección de la vista de la cámara.

Interactividad

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

HoldDuration

La propiedad HoldDuration determina cuántos segundos tiene un usuario para presionar una tecla antes de que se active la acción de la indicación de proximidad. Si esta propiedad tiene un valor de 0, la acción de la indicación de proximidad se activa de inmediato.

ClickablePrompt

La propiedad ClickablePrompt especifica si un usuario puede hacer clic en una indicación de proximidad para activar su acción. Cuando se establece en true, un usuario puede interactuar con la indicación de proximidad haciendo clic directamente en la indicación de proximidad o presionando la tecla especificada. Cuando se establece en false, un usuario solo puede interactuar con la indicación de proximidad presionando la tecla especificada.

Scripts de indicaciones de proximidad

Puedes conectarte a los eventos de indicaciones de proximidad ya sea en el objeto ProximityPrompt en sí o globalmente a través de ProximityPromptService. El ProximityPromptService te permite gestionar todo el comportamiento de las indicaciones de proximidad desde un solo lugar, evitando la necesidad de código duplicado en tu experiencia.

EventoDescripción
PromptTriggeredSe activa cuando un jugador interactúa con una indicación de proximidad (después de la duración de una indicación con un HoldDuration distinto de cero).
PromptTriggerEndedSe activa cuando el jugador deja de interactuar con una indicación de proximidad.
PromptButtonHoldBeganSe activa cuando un jugador comienza a interactuar con una indicación de proximidad con un valor de HoldDuration distinto de cero.
PromptButtonHoldEndedSe activa cuando un jugador deja de interactuar con una indicación de proximidad con un valor de HoldDuration distinto de cero.
PromptShownSe activa en LocalScripts cuando se hace visible una indicación de proximidad.
PromptHiddenSe activa en LocalScripts cuando una indicación es oculta.

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


local ProximityPromptService = game:GetService("ProximityPromptService")
-- Detectar cuándo se activa la indicación
local function onPromptTriggered(promptObject, player)
end
-- Detectar cuándo comienza la retención de la indicación
local function onPromptHoldBegan(promptObject, player)
end
-- Detectar cuándo termina la retención de la indicación
local function onPromptHoldEnded(promptObject, player)
end
-- Conectar eventos de indicaciones a funciones de manejo
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)
©2026 Roblox Corporation. Roblox, el logotipo de Roblox y "Powering Imagination" son algunas de nuestras marcas registradas y no registradas en los Estados Unidos y otros países.