接近提示

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

ProximityPrompt 物件鼓勵用戶與3D體驗中的物體(例如門、燈開關和按鈕)互動以觸發動作。使用此物件,您可以:

  • 指示用戶可以與哪些物體互動。
  • 顯示用戶可以在物體上執行的動作,然後通過按下或長按按鍵等用戶輸入來觸發該動作。
  • 顯示所有輸入類型的正確輸入,例如鍵盤、遊戲手柄和觸控螢幕按鍵。

創建接近提示

您必須將接近提示作為子項添加到您希望用戶互動的部件、模型或附件上。要將接近提示添加到 BasePartModelAttachment 物件:

  1. Explorer 視窗中,將滑鼠懸停在 BasePartModelAttachment 上,然後單擊 ⊕ 按鈕。會顯示一個上下文菜單。

  2. 從菜單中,插入一個 ProximityPrompt

    Explorer 層級顯示一個附加到附加物件的 ProximityPrompt

自定義接近提示

您可以根據希望它如何 顯示、何時希望它可 以及用戶需要做什麼來 觸發動作 來自定義接近提示。

顯示

接近提示需要傳達三樣東西:

  • 用戶可以互動的 物體
  • 與接近提示互動時觸發的 動作
  • 用戶必須按下或長按的

您可以通過以下屬性來指定這些信息:

可見性

您可以通過其 MaxActivationDistanceRequiresLineOfSightExclusivity 屬性來控制接近提示何時顯示。

MaxActivationDistance

MaxActivationDistance 屬性允許您定義觸發接近提示可見性的範圍。一旦用戶的角色進入該範圍,接近提示將變為可見。

圖解顯示角色的距離如何影響 ProximityPrompt 物件在螢幕上的顯示

RequiresLineOfSight

RequiresLineOfSight 屬性在相機與 ProximityPrompt 物件之間有清晰的路徑時,會觸發接近提示的可見性。默認情況下,此屬性設置為真。

Exclusivity

如果用戶的角色在多個接近提示的範圍內,則每個接近提示的可見性取決於相機指向哪個接近提示,以及每個接近提示的 Exclusivity 屬性值。

接近提示物件設置為 OnePerButton 獨占
每個輸入按鍵碼最多只能顯示一個接近提示。如果多個範圍內的接近提示使用不同的按鍵碼,則它們都可見。但是,如果多個範圍內的接近提示使用相同的按鍵碼,則只會根據相機的視向顯示一個接近提示。

互動性

您可以通過接近提示的 HoldDurationClickablePrompt 屬性自定義用戶如何與接近提示互動。

HoldDuration

HoldDuration 屬性確定用戶按下按鍵所需的秒數,然後接近提示的動作才會觸發。如果此屬性的值為 0,則接近提示的動作會立即觸發。

ClickablePrompt

ClickablePrompt 屬性指定用戶是否可以通過單擊接近提示來觸發其動作。當設置為 true 時,用戶可以通過直接單擊接近提示 按下指定的按鍵與接近提示互動。當設置為 false 時,用戶只能通過按下指定的按鍵與接近提示互動。

腳本接近提示

您可以在 ProximityPrompt 物件本身或通過 ProximityPromptService 全球連接接近提示事件。ProximityPromptService 允許您從一個位置管理所有接近提示行為,避免在體驗中重複代碼的需要。

事件描述
PromptTriggered當玩家與接近提示互動時觸發(在持續時間為非零的接近提示上)。
PromptTriggerEnded當玩家停止與接近提示互動時觸發。
PromptButtonHoldBegan當玩家開始與具有非零 HoldDuration 值的接近提示互動時觸發。
PromptButtonHoldEnded當玩家停止與具有非零 HoldDuration 值的接近提示互動時觸發。
PromptShown當接近提示變得可見時,在 LocalScripts 中觸發。
PromptHidden當接近提示被隱藏時,在 LocalScripts 中觸發。

以下代碼示例包括使用 ProximityPromptService 的基本框架:


local ProximityPromptService = game:GetService("ProximityPromptService")
-- 檢測提示觸發
local function onPromptTriggered(promptObject, player)
end
-- 檢測提示保持開始
local function onPromptHoldBegan(promptObject, player)
end
-- 檢測提示保持結束
local function onPromptHoldEnded(promptObject, player)
end
-- 將提示事件連接到處理函數
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)
©2026 Roblox Corporation、Roblox、Roblox 標誌及 Powering Imagination 是我們在美國及其他國家地區的部分註冊與未註冊商標。