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:
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.
Desde el menú, insira un ProximityPrompt .
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.
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.

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.

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.
Suceso | Descripción |
---|---|
PromptTriggered | Se 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 ). |
PromptTriggerEnded | Se activa cuando el jugador deja de interactuar con una solicitud de proximidad. |
PromptButtonHoldBegan | Se activa cuando un jugador comienza a interactuar con una solicitud de proximidad con un valor no nulo HoldDuration . |
PromptButtonHoldEnded | Se activa cuando un jugador deja de interactuar con una solicitud de proximidad con un valor no nulo HoldDuration . |
PromptShown | Se activan en LocalScripts cuando se hace visible una solicitud de proximidad. |
PromptHidden | Se 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)