Prompts 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 del juego como puertas, interruptores de luz y botones. Usando este objeto, puedes:

  • Indicar qué objetos puede interactuar un usuario en el juego.
  • Mostrar la acción que un usuario puede realizar 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 prompts de proximidad

Debes parentar los prompts de proximidad a la parte, modelo o adjunto con el que deseas que un usuario interactúe. Para agregar un prompt de proximidad a un objeto BasePart, Model o Attachment:

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

  2. Desde el menú, inserta un ProximityPrompt.

    Jerarquía del Explorer mostrando un ProximityPrompt parentado a un Attachment

Personalizar prompts de proximidad

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

Apariencia

Los prompts de proximidad necesitan comunicar tres cosas:

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

Puedes especificar estos 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 los elementos básicos de un ProximityPrompt

Visibilidad

Puedes controlar cuándo es visible el prompt 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 del prompt de proximidad. Una vez que el personaje de un usuario entra en ese rango, el prompt de proximidad se vuelve visible.

Diagrama que indica cómo la distancia de un personaje a un objeto ProximityPrompt afecta si el prompt aparece en pantalla

RequiresLineOfSight

La propiedad RequiresLineOfSight activa la visibilidad del prompt 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 prompts de proximidad, la visibilidad de cada prompt de proximidad depende de cuál prompt de proximidad está apuntando la cámara, así como del valor de la propiedad Exclusivity de cada prompt de proximidad.

Objetos ProximityPrompt configurados con exclusividad de OnePerButton
Solo un prompt de proximidad es visible por cada código de tecla de entrada. Si múltiples prompts de proximidad en rango utilizan diferentes códigos de tecla, todos son visibles. Sin embargo, si múltiples prompts de proximidad en rango utilizan el mismo código de tecla, solo un prompt 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 un prompt 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 del prompt de proximidad. Si esta propiedad tiene un valor de 0, la acción del prompt de proximidad se activa inmediatamente.

ClickablePrompt

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

Script de prompts de proximidad

Puedes conectarte a los eventos de prompts 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 los prompts de proximidad desde un solo lugar, evitando la necesidad de código duplicado en tu juego.

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

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

local ProximityPromptService = game:GetService("ProximityPromptService")
-- Detectar cuando se activa el prompt
local function onPromptTriggered(promptObject, player)
end
-- Detectar cuando comienza la retención del prompt
local function onPromptHoldBegan(promptObject, player)
end
-- Detectar cuando termina la retención del prompt
local function onPromptHoldEnded(promptObject, player)
end
-- Conectar eventos del prompt 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.