接近提示

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

ProximityPrompt 物件 鼓勵用戶互動,以在接近遊戲中的物體(如門、燈開關和按鈕)時觸發動作。使用此物件,您可以:

  • 指示用戶可以在遊戲中互動的物體。
  • 顯示用戶可以對物體採取的動作,然後通過用戶輸入(如按下或長按鍵)觸發該動作。
  • 顯示所有輸入類型的正確輸入,例如鍵盤、遊戲手柄和觸控螢幕按鍵。

創建接近提示

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

  1. Explorer 窗口中,將鼠標懸停在 BasePartModelAttachment 上,然後單擊 ⊕ 按鈕。將顯示上下文菜單。

  2. 從菜單中插入 ProximityPrompt

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

自定義接近提示

您可以根據希望它的 外觀、希望它何時可見 可見性 以及希望用戶如何 觸發動作 來自定義接近提示。

外觀

接近提示需要傳達三件事:

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

您可以通過以下屬性來指定這些內容:

  • ObjectText 用戶可以互動的物體的可選名稱。

  • ActionText 用戶將觸發的動作的可選名稱。

  • KeyboardKeyCode 用戶必須按下或長按的鍵盤鍵,以觸發該動作。

  • GamepadKeyCode 用戶必須按下或長按的遊戲手柄鍵,以觸發該動作。

    顯示 ProximityPrompt 基本元素的圖示

可見性

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

MaxActivationDistance

MaxActivationDistance 屬性允許您定義從 ProximityPrompt 物件周圍激活接近提示可見性的範圍。一旦用戶的角色進入該範圍,接近提示將變得可見。

圖示顯示角色與 ProximityPrompt 物件的距離如何影響提示是否出現在螢幕上

RequiresLineOfSight

RequiresLineOfSight 屬性在從 相機ProximityPrompt 物件有清晰路徑時激活接近提示的可見性。默認情況下,此屬性設置為 true。

Exclusivity

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

設置為 OnePerButton 的 ProximityPrompt 物件
每個輸入鍵碼僅顯示一個接近提示。如果多個在範圍內的接近提示使用不同的鍵碼,則它們都可見。然而,如果多個在範圍內的接近提示使用相同的鍵碼,則在任何給定時間僅顯示一個接近提示,具體取決於相機的視角。

互動性

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

HoldDuration

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

ClickablePrompt

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

腳本接近提示

您可以在 ProximityPrompt 物件本身或通過 ProximityPromptService 全局連接到接近提示事件。ProximityPromptService 允許您從一個位置管理所有接近提示行為,防止在遊戲中需要重複代碼。

事件描述
PromptTriggered當玩家與接近提示互動時觸發(在持續時間為非零的 HoldDuration 的提示之後)。
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 是我們在美國及其他國家地區的部分註冊與未註冊商標。