Invites de proximité

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

Vous pouvez créer des invites de proximité interactives qui apparaissent lorsque les utilisateurs s'approchent d'objets dans l'espace 3D, puis déclenchent des actions en fonction de l'entrée de l'utilisateur.

Ce tutoriel utilise le projet Dungeon Delve comme vitrine. Pour suivre, ouvrez-le dans Studio avant de continuer.

Option Éditer dans Studio depuis la page principale du jeu

Créer une invite

Les invites à l'écran sont générées par un objet ProximityPrompt parenté à un Attachment, BasePart ou Model.

  1. Sélectionnez le modèle PrisonDoor dans la vue 3D ou depuis l'Explorateur (WorkspacePromptObjectsPrisonDoor).

  2. Développez son arbre et sélectionnez l'objet Door.

  3. Placer une invite sur un Attachment vous donne plus de contrôle sur l'endroit où se produit le point d'interaction, par rapport à le placer directement sur la pièce/le modèle. Insérez un nouvel Attachment et renommez-le en PromptAttachment.

  4. Localisez la propriété Position de la nouvelle attache et définissez-la sur -2.25, -0.5, -0.5. Cela la déplacera devant le trou de serrure de la porte.

  5. Survolez PromptAttachment et insérez un nouvel objet ProximityPrompt.

Apparence de l'invite

Les invites se composent de trois éléments principaux, chacun pouvant être contrôlé par les propriétés suivantes :

  • ObjectText — Un nom optionnel pour l'objet avec lequel on interagit.
  • ActionText — Un nom d'action optionnel affiché à l'utilisateur.
  • KeyboardKeyCode — La touche du clavier qui déclenchera l'invite.
  • GamepadKeyCode — Le bouton de la manette qui déclenchera l'invite.

Pour personnaliser l'apparence de l'invite de la porte de prison, effectuez les modifications suivantes :

  1. Dans la fenêtre Propriétés, localisez la propriété ObjectText et tapez Door.

  2. Pour la propriété ActionText, tapez Pick Lock.

Distance d'activation

Les invites apparaissent lorsque le personnage de l'utilisateur se déplace dans la plage définie de MaxActivationDistance de l'objet parent de l'invite.

La valeur par défaut fonctionne bien dans la plupart des cas, mais vous pouvez rapprocher l'interaction de l'utilisateur de la serrure en changeant MaxActivationDistance à 4.

Durée de maintien

La valeur de la propriété HoldDuration détermine la rapidité avec laquelle l'action de l'invite est déclenchée, en secondes. Puisque cette porte doit être crochetée pour être déverrouillée, changez la propriété HoldDuration à 4.

Implémenter une action

La meilleure façon de détecter les événements d'invite est via ProximityPromptService — cela vous permet de détecter les événements de manière centralisée sans attacher un script à chaque objet d'invite.

Un cadre de base est le suivant :

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 l'invite commence
local function onPromptHoldBegan(promptObject, player)
end
-- Détecter quand le maintien de l'invite se termine
local function onPromptHoldEnded(promptObject, player)
end
-- Connecter les événements d'invite aux fonctions de gestion
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)
ÉvénementDescription
PromptTriggeredSe déclenche lorsqu'un utilisateur interagit avec une invite (après la durée pour une invite avec HoldDuration non nulle).
PromptButtonHoldBeganSe déclenche lorsqu'un utilisateur commence à interagir avec une invite de HoldDuration non nulle.
PromptButtonHoldEndedSe déclenche lorsqu'un utilisateur arrête d'interagir avec une invite de HoldDuration non nulle.

Dans le projet Dungeon Delve, ces événements sont gérés par le script PromptEvents dans ServerScriptService.

À l'intérieur du script, les événements ci-dessus appellent simplement des fonctions dans le ModuleScript ObjectActions, également situé dans ServerScriptService.

local ProximityPromptService = game:GetService("ProximityPromptService")
local ServerScriptService = game:GetService("ServerScriptService")
local ObjectActions = require(ServerScriptService.ObjectActions)
-- Détecter quand l'invite est déclenchée
local function onPromptTriggered(promptObject, player)
ObjectActions.promptTriggeredActions(promptObject, player)
end
-- Détecter quand le maintien de l'invite commence
local function onPromptHoldBegan(promptObject, player)
ObjectActions.promptHoldBeganActions(promptObject, player)
end
-- Détecter quand le maintien de l'invite se termine
local function onPromptHoldEnded(promptObject, player)
ObjectActions.promptHoldEndedActions(promptObject, player)
end
-- Connecter les événements d'invite aux fonctions de gestion
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)

Les invites de proximité sont une solution pratique et personnalisable pour l'interaction avec les objets dans le jeu. Consultez les pages de référence ProximityPrompt et ProximityPromptService pour encore plus de façons de contrôler le comportement des invites, et explorez d'autres objets interactifs dans Dungeon Delve pour une inspiration créative.

©2026 Société Roblox. Roblox, le logo Roblox et Powering Imagination font partie de nos marques déposées aux États-Unis et dans d'autres pays.