Invite de proximité

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

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,

  1. Dans la fenêtre Explorateur, passez la souris sur le BasePart, Model, ou 2>Class.Attribut2>, et cliquez sur le bouton ⊕. Un menu contextuel s'affiche.

  2. Dans le menu, insérez un ProximityPrompt .

    Explorer hierarchy showing a ProximityPrompt parented to an Attachment

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.

    Diagram indicating basic elements of a ProximityPrompt

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.

Diagram indicating how a character's distance from a ProximityPrompt object affects whether the prompt appears on screen

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é.

ProximityPrompt objects set to exclusivity of OnePerButton
Seuls les points d'approche pour les clés de saisie sont visibles. Si plusieurs points d'approche dans la portée sont utilisés avec des codes de clé différents, ils sont tous visibles. Cependant, si plusieurs points d'approche dans la portée utilisent le même code de clé, seul un point d'approche dans la portée est visible à tout moment, en fonction de la direction de la caméra.

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énementDescription
PromptTriggeredSe déclenche lorsqu'un joueur interagit avec une invite de proximité (après la durée pour une invite avec non zéro HoldDuration ).
PromptTriggerEndedSe déclenche lorsque le joueur arrête d'interagir avec une invite de proximité.
PromptButtonHoldBeganSe déclenche lorsqu'un joueur commence à interagir avec une invite de proximité avec une valeur non zéro HoldDuration .
PromptButtonHoldEndedSe déclenche lorsqu'un joueur arrête d'interagir avec une invite de proximité avec une valeur non zéro HoldDuration.
PromptShownActiver dans LocalScripts lorsqu'une invitation de proximité est rendue visible.
PromptHiddenActiver 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)