Samouczki dla średnio zaawansowanych

Wskazówki z bliskiej odległości

*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 wskazówki z bliskiej odległości, 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ć instrukcje, otwórz go w Studio przed kontynuowaniem.

Opcja edytowania w Studio z głównej strony doświadczenia

Utwórz podpowiedź

Podpowiedzi wyświetlane na ekranie są generowane przez obiekt ProximityPrompt przypisany do Attachment, BasePart lub Model.

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

  2. Rozwiń jego drzewo i wybierz obiekt Door.

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

  4. Znajdź właściwość Position nowego załącznika i ustaw ją na -2.25, -0.5, -0.5. To przeniesie go przed otwór na klucz w drzwiach.

  5. Najedź kursorem 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 wchodzi się w interakcję.
  • 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 do zamka w drzwiach więziennych, wprowadź następujące zmiany:

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

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

Odległość aktywacji

Podpowiedzi pojawiają się, gdy postać użytkownika porusza się w zdefiniowanym zakresie MaxActivationDistance obiektu nadrzędnego podpowiedzi.

Domyślna wartość działa dobrze w większości przypadków, ale można przybliżyć interakcję użytkownika z zamkiem, 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ć otwierane, zmień właściwość HoldDuration na 4.

Zaimplementuj akcję

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

Podstawowa struktura jest następująca:


local ProximityPromptService = game:GetService("ProximityPromptService")
-- Wykrywanie, kiedy podpowiedź jest wyzwalana
local function onPromptTriggered(promptObject, player)
end
-- Wykrywanie, kiedy trzymanie podpowiedzi się zaczyna
local function onPromptHoldBegan(promptObject, player)
end
-- Wykrywanie, kiedy trzymanie podpowiedzi się kończy
local function onPromptHoldEnded(promptObject, player)
end
-- Połączenie zdarzeń podpowiedzi z funkcjami obsługi
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)
ZdarzenieOpis
PromptTriggeredWywoływane, gdy użytkownik wchodzi w interakcję z podpowiedzią (po czasie trwania podpowiedzi z niezerową wartością HoldDuration).
PromptButtonHoldBeganWywoływane, gdy użytkownik zaczyna wchodzić w interakcję z podpowiedzią o niezerowej wartości HoldDuration.
PromptButtonHoldEndedWywoływane, 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 te zdarzenia po prostu wywołują funkcje w ModuleScript o nazwie ObjectActions, która również znajduje się w ServerScriptService.


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

Wskazówki z bliskiej odległości to wygodne i dostosowywalne rozwiązanie dla interakcji z obiektami w grze. Sprawdź strony referencyjne ProximityPrompt i ProximityPromptService, aby poznać jeszcze więcej sposobów na kontrolowanie zachowania podpowiedzi, a także eksploruj inne interaktywne obiekty w Dungeon Delve w celu zdobycia inspiracji.

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