ProximityPrompt les objets encouragent l'interaction de l'utilisateur pour déclencher une action lorsqu'ils s'approchent d'objets dans l'expérience tels que les portes, les interrupteurs d'éclairage et les boutons. En utilisant cet objet, vous pouvez :
- Indiquez avec quels objets un utilisateur peut interagir dans l'expérience.
- Affichez l'action qu'un utilisateur peut prendre sur l'objet, puis déclenchez l'action via l'entrée de l'utilisateur, comme en appuyant sur ou en maintenant une clé.
- Affichez la bonne entrée pour tous les types d'entrée, tels qu'un clavier, une manette de jeu et des touches d'écran.
Créer des提示 de proximité
Vous devez associer les invitations de proximité à la partie, au modèlisationou à l'attribut que vous souhaitez qu'un utilisateur interagisse avec. Pour ajouter une invitation de proximité à un objet BasePart, Model ou Attachment,
Dans le menu, insérez un ProximityPrompt .
Personnalisation des invitations de proximité
Vous pouvez personnaliser une invite de proximité en fonction de la façon dont vous voulez qu'elle appienne, lorsque vous voulez qu'elle soit visible, et ce que vous voulez qu'un utilisateur fasse pour déclencher l'action.
Apparence
Les prompts de proximité doivent communiquer trois choses :
- L'objet objet qu'un utilisateur peut interagir avec.
- La action qui se déclenche lorsqu'ils interagissent avec la demande de proximité.
- La clé clé qu'un utilisateur doit appuyer ou maintenir.
Vous pouvez les spécifier via les propriétés suivantes :
ObjectText un nom facultatif pour l'objet qu'un utilisateur peut interagir avec.
ActionText un nom facultatif pour l'action qu'un utilisateur déclencheur.
KeyboardKeyCode La touche clavier qu'un utilisateur doit appuyer ou maintenir pour déclencher l'action.
GamepadKeyCode Le gamepad key qu'un utilisateur doit appuyer ou maintenir pour déclencher l'action.
Visibilité
Vous pouvez contrôler quand la proximité est visible à travers son MaxActivationDistance, RequiresLineOfSight et Exclusivity propriétés.
Distance d'activation maximale
La propriété MaxActivationDistance vous permet de définir la portée autour du ProximityPrompt objet qui active la visibilité du prompt de proximité. Une fois que le personnage d'un utilisateur entre dans cette portée, le prompt de proximité devient visible.
Requiert une ligne de vue
La propriété RequiresLineOfSight active la visibilité du prompt de proximité lorsqu'il y a un chemin clair de la caméra à l'objet Class.ProximityPrompt . Par défaut, cette propriété est réglée sur vrai.
Exclusivité
Si le personnage d'un utilisateur se trouve dans la portée de plusieurs commandes de proximité, la visibilité de chaque commande de proximité dépend de la proximité promise par la caméra, ainsi que de la valeur de propriété Exclusivity de chaque commande de proximité.
Interactivité
Vous pouvez personnaliser la façon dont un utilisateur interagit avec un prompt de proximité via ses propriétés HoldDuration et ClickablePrompt.
Durée d'expiration
La propriété HoldDuration détermine le nombre de secondes qu'un utilisateur doit appuyer sur une touche avant que l'action de la proximité ne se déclenche. Si cette propriété a une valeur de 0, l'action de la proximité se déclenche immédiatement.
CliqueablePrompt
La propriété ClickablePrompt spécifie si un utilisateur peut cliquer sur un prompt de proximité pour déclencher son action. Lorsqu'il est réglé sur oui , un utilisateur peut interagir avec le prompt de proximité en cliquant directement sur le prompt de proximité ou en appuyant sur la cléspéc
Scripting des提示 de proximité
Vous pouvez vous connecter à des événements d'invite à la proximité soit sur l'objet ProximityPrompt lui-même soit globalement via ProximityPromptService. Le ProximityPromptService vous permet de gérer tout le comportement d'invite à la proximité, y compris le besoin d'un code en double dans votre expérience.
Événement | Description |
---|---|
PromptTriggered | Se déclenche lorsqu'un joueur interagit avec une invite de proximité (après la durée pour une invite avec non zéro HoldDuration ). |
PromptTriggerEnded | Se déclenche lorsque le joueur arrête d'interagir avec une invite de proximité. |
PromptButtonHoldBegan | Se déclenche lorsqu'un joueur commence à interagir avec une invite de proximité avec une valeur non zéro HoldDuration . |
PromptButtonHoldEnded | Se déclenche lorsqu'un joueur arrête d'interagir avec une invite de proximité avec une valeur non zéro HoldDuration. |
PromptShown | Activer dans LocalScripts lorsqu'une invitation de proximité est rendue visible. |
PromptHidden | Activer dans LocalScripts quand une invite est cachée. |
L'exemple de code suivant inclut un cadre de base pour l'utilisation de ProximityPromptService :
local ProximityPromptService = game:GetService("ProximityPromptService")
-- Détectez quand le prompt est déclenché
local function onPromptTriggered(promptObject, player)
end
-- Détectez quand la touche de maintien commence
local function onPromptHoldBegan(promptObject, player)
end
-- Détectez quand la pression enfoncée de la barre de commande se termine
local function onPromptHoldEnded(promptObject, player)
end
-- Connectez les événements de commande aux fonctions de traitement
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)