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:
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.
Del menú, inserta un ProximityPrompt .
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.
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.
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.
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.
Evento | Descripción |
---|---|
PromptTriggered | Se activa cuando un jugador interactúa con un mensaje de proximidad (después de la duración para un mensaje con no-cero 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 un mensaje de proximidad con un valor no nulo de HoldDuration . |
PromptButtonHoldEnded | Se activa cuando un jugador deja de interactuar con un mensaje de proximidad con un valor no nulo de HoldDuration . |
PromptShown | Activa en LocalScripts cuando se hace visible un mensaje de proximidad. |
PromptHidden | Activa 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)