ProximityPrompt les objets encouragent l'interaction de l'utilisateur à déclencher une action lorsqu'ils approchent des objets in-expérience tels que des portes, des interrupteurs à lumière et des 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 telle que la pression ou la maintenance d'une clé.
- Affichez la bonne entrée pour tous les types d'entrée, telle qu'une souris, une manette de jeu et des touches de toucher.
Créer des invitations de proximité
Vous devez parentaliser les invites de proximité à la partie, modèlisationou à l'attachement avec lequel vous voulez que l'utilisateur interagisse.Pour ajouter une demande de proximité à un objet BasePart, Model ou Attachment :
Dans la fenêtre Explorateur, passez la souris sur le BasePart, Model ou Attachment et cliquez sur le bouton ⊕. Un menu contextuel s'affiche.
Dans le menu, insérez un ProximityPrompt .
Personnaliser les invitations de proximité
Vous pouvez personnaliser une demande de proximité en fonction de la façon dont vous souhaitez qu'elle apparaisse , quand vous souhaitez qu'elle soit visible , et ce que vous voulez qu'un utilisateur fasse pour déclencher l'action .
Apparence
Les invitations de proximité doivent communiquer trois choses :
- L'objet que l'utilisateur peut interagir avec.
- L'action lorsqu'elle se déclenche lorsqu'ils interagissent avec l'invite de proximité .
- La clé que doit appuyer ou maintenir un utilisateur .
Vous pouvez les spécifier via les propriétés suivantes :
ObjectText Un nom facultatif pour l'objet avec lequel un utilisateur peut interagir.
ActionText Un nom facultatif pour l'action déclencheurpar un utilisateur.
KeyboardKeyCode La touche du clavier qu'un utilisateur doit appuyer ou maintenir pour déclencher l'action.
GamepadKeyCode La touche du manette que l'utilisateur doit appuyer ou maintenir pour déclencher l'action.
Visibilité
Vous pouvez contrôler quand l'invite de proximité est visible via ses propriétés MaxActivationDistance, RequiresLineOfSight et Exclusivity.
Distance d'activation maximum
La propriété MaxActivationDistance permet de définir la portée autour de l'objet ProximityPrompt qui active la visibilité de l'invite de proximité.Une fois que le personnage d'un utilisateur entre dans cette plage, l'invite de proximité devient visible.

Nécessite une ligne de vision
La propriété active la visibilité de l'invite de proximité lorsqu'il y a un chemin clair de la caméra à l'objet >.Par défaut, cette propriété est définie sur vrai.
Exclusivité
Si le personnage d'un utilisateur se trouve à portée de plusieurs invitations de proximité, la visibilité de chaque invitation de proximité dépend de la position à laquelle la caméra pointe, ainsi que de la valeur de propriété de chaque invitation de proximité.

Interactivité
Vous pouvez personnaliser la façon dont un utilisateur interagit avec une invite de proximité via ses propriétés HoldDuration et ClickablePrompt.
Durée de maintien
La propriété HoldDuration détermine le nombre de secondes qu'un utilisateur doit appuyer sur une touche avant que l'action de l'invite de proximité ne soit déclenchée.Si cette propriété a une valeur de 0, l'action de la demande de proximité se déclenche immédiatement.
Prompt cliquable
La propriété ClickablePrompt spécifie si un utilisateur peut cliquer sur une invitation de proximité pour déclencher son action.Lorsqu'il est réglé sur vrai , un utilisateur peut interagir avec l'invite de proximité en cliquant directement sur l'invite de proximité ou en appuyant sur la cléspécifiée.Lorsqu'il est défini à faux , un utilisateur ne peut interagir qu'avec l'invite de proximité en appuyant sur la cléspécifiée.
Invites de proximité de script
Vous pouvez vous connecter à des événements d'invitation de proximité soit sur l'objet ProximityPrompt lui-même, soit globalement via ProximityPromptService .Le ProximityPromptService vous permet de gérer tout le comportement des invites de proximité à partir d'un emplacement, empêchant tout besoin de code en double dans votre expérience.
Événement | Avertissement |
---|---|
PromptTriggered | Se déclenche lorsqu'un joueur interagit avec une invite de proximité (après la durée d'une invitation avec un non zéro HoldDuration ). |
PromptTriggerEnded | Se déclenche lorsque le joueur cesse d'interagir avec une invite de proximité. |
PromptButtonHoldBegan | S'enflamme lorsqu'un joueur commence à interagir avec une invite de proximité avec une valeur non nulle HoldDuration . |
PromptButtonHoldEnded | S'enflamme lorsqu'un joueur cesse d'interagir avec une invite de proximité avec une valeur non nulle HoldDuration . |
PromptShown | Les déclencheurs dans LocalScripts lorsqu'une invite de proximité est rendue visible. |
PromptHidden | Coupures dans LocalScripts lorsqu'une demande est cachée. |
L'exemple de code suivant inclut un cadre de base pour l'utilisation de ProximityPromptService :
local ProximityPromptService = game:GetService("ProximityPromptService")
-- Détecter quand l'invite est déclenchée
local function onPromptTriggered(promptObject, player)
end
-- Détecter quand le maintien de la prompte commence
local function onPromptHoldBegan(promptObject, player)
end
-- Détecter quand la poignée de rappel se termine
local function onPromptHoldEnded(promptObject, player)
end
-- Relier les événements d'invite à des fonctions de traitement
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)