Podpowiedzi z bliskiego zasięgu

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Możesz tworzyć interaktywne podpowiedzi z bliskiego zasięgu, które pojawiają się, gdy użytkownicy zbliżają się do obiektów w przestrzeni 3D, a następnie wyzwalają akcje na podstawie wejścia użytkownika.

Ten samouczek wykorzystuje projekt Dungeon Delve jako przykład. Aby śledzić, otwórz go w Studio przed kontynuowaniem.

Opcja Edytuj w Studio z głównej strony gry

Utwórz podpowiedź

Podpowiedzi na ekranie są generowane przez obiekt ProximityPrompt umieszczony w obiekcie Attachment, BasePart lub Model.

  1. Wybierz model PrisonDoor w widoku 3D lub z Eksploratora (WorkspacePromptObjectsPrisonDoor).

  2. Rozwiń jego drzewo i wybierz obiekt Door.

  3. Umieszczenie podpowiedzi na Attachment daje ci większą kontrolę nad tym, gdzie następuje punkt interakcji, w porównaniu do umieszczania jej bezpośrednio na części/modelu. Wstaw nowy Attachment i zmień jego nazwę na PromptAttachment.

  4. Zlokalizuj właściwość Position nowego załącznika i ustaw ją na -2.25, -0.5, -0.5. To przesunie go przed otwór zamka drzwi.

  5. Najedź na PromptAttachment i wstaw nowy obiekt ProximityPrompt.

Wygląd podpowiedzi

Podpowiedzi składają się z trzech podstawowych elementów, z których każdy można kontrolować za pomocą następujących właściwości:

  • ObjectText — Opcjonalna nazwa obiektu, z którym następuje interakcja.
  • ActionText — Opcjonalna nazwa akcji wyświetlana użytkownikowi.
  • KeyboardKeyCode — Klawisz na klawiaturze, który wyzwoli podpowiedź.
  • GamepadKeyCode — Przycisk na gamepadzie, który wyzwoli podpowiedź.

Aby dostosować wygląd podpowiedzi drzwi więziennych, wprowadź następujące zmiany:

  1. W oknie Właściwości zlokalizuj właściwość ObjectText i wpisz Door.

  2. Dla właściwości ActionText wpisz Pick Lock.

Odległość aktywacji

Podpowiedzi pojawiają się, gdy postać użytkownika porusza się w obrębie zdefiniowanego zasięgu MaxActivationDistance obiektu rodzica podpowiedzi.

Domyślna wartość działa dobrze w większości przypadków, ale możesz zbliżyć interakcję użytkownika do zamka, zmieniając MaxActivationDistance na 4.

Czas trzymania

Wartość właściwości HoldDuration określa, jak szybko akcja podpowiedzi jest wyzwalana, w sekundach. Ponieważ te drzwi muszą być otwarte, aby je odblokować, zmień wartość właściwości HoldDuration na 4.

Wdrożenie akcji

Najlepszym sposobem na wykrywanie zdarzeń podpowiedzi jest użycie ProximityPromptService — pozwala to na centralne wykrywanie zdarzeń bez konieczności dołączania skryptu do każdego obiektu podpowiedzi.

Podstawowa struktura wygląda następująco:

local ProximityPromptService = game:GetService("ProximityPromptService")
-- Wykryj, kiedy podpowiedź jest wyzwalana
local function onPromptTriggered(promptObject, player)
end
-- Wykryj, kiedy zaczyna się trzymanie podpowiedzi
local function onPromptHoldBegan(promptObject, player)
end
-- Wykryj, kiedy kończy się trzymanie podpowiedzi
local function onPromptHoldEnded(promptObject, player)
end
-- Połącz zdarzenia podpowiedzi z funkcjami obsługi
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)
ZdarzenieOpis
PromptTriggeredWyzwala się, gdy użytkownik wchodzi w interakcję z podpowiedzią (po czasie trwania podpowiedzi z niezerową wartością HoldDuration).
PromptButtonHoldBeganWyzwala się, gdy użytkownik zaczyna wchodzić w interakcję z podpowiedzią o niezerowej wartości HoldDuration.
PromptButtonHoldEndedWyzwala się, gdy użytkownik przestaje wchodzić w interakcję z podpowiedzią o niezerowej wartości HoldDuration

W projekcie Dungeon Delve te zdarzenia są zarządzane przez skrypt PromptEvents w ServerScriptService.

Wewnątrz skryptu powyższe zdarzenia po prostu wywołują funkcje w ModuleScript ObjectActions, również znajdującym się w ServerScriptService.

local ProximityPromptService = game:GetService("ProximityPromptService")
local ServerScriptService = game:GetService("ServerScriptService")
local ObjectActions = require(ServerScriptService.ObjectActions)
-- Wykryj, kiedy podpowiedź jest wyzwalana
local function onPromptTriggered(promptObject, player)
ObjectActions.promptTriggeredActions(promptObject, player)
end
-- Wykryj, kiedy zaczyna się trzymanie podpowiedzi
local function onPromptHoldBegan(promptObject, player)
ObjectActions.promptHoldBeganActions(promptObject, player)
end
-- Wykryj, kiedy kończy się trzymanie podpowiedzi
local function onPromptHoldEnded(promptObject, player)
ObjectActions.promptHoldEndedActions(promptObject, player)
end
-- Połącz zdarzenia podpowiedzi z funkcjami obsługi
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)

Podpowiedzi z bliskiego zasięgu to wygodne i dostosowywalne rozwiązanie do interakcji z obiektami w grze. Sprawdź strony referencyjne ProximityPrompt i ProximityPromptService, aby uzyskać jeszcze więcej sposobów na kontrolowanie zachowania podpowiedzi, oraz odkryj inne interaktywne obiekty w Dungeon Delve dla inspiracji twórczej.

©2026 Roblox Corporation. Nazwa Roblox, logo Roblox oraz hasło „Powering Imagination” należą do naszych zarejestrowanych i niezarejestrowanych znaków towarowych na terenie Stanów Zjednoczonych oraz w innych krajach.