ProximityPrompt 對象會鼓勵使用者互動以啟動行動,當他們靠近體驗對象,例如門、燈、按鈕。使用此物件,您可以:
- 指示使用者在體驗中可以與哪些對象互動。
- 顯示使用者可以對對物件執行的行動,然後通過使用者輸入按一下或按住鍵等方式來觸發此行動。
- 顯示所有輸入類型的正確輸入,例如鍵盤、遊戲手柄和觸摸屏鍵。
創建接近提示
您必須將親近提示親近提示提示與您想要的用戶互動的零件、模型或附件。若要將親近提示添加到 BasePart 、 Model 或 Attachment 物件:
從選單中插入 ProximityPrompt 。
自訂近接提示
您可以根據您想要的顯示方式,自訂您想要的提示。當您想要它變得可見,並且您想要用戶用戶2>觸發操作2>時。
外觀
接近提示需要傳送三個訊息:
- 使用者可以與 對象 互動。
- 當接近提示與之交互時發動的 行動 。
- 使用者必須按下或按住的 鍵 。
您可以通過以下屬性指定這些:
ObjectText 一個用戶可以與對象互動的可選名稱。
ActionText 一個可選的名稱,用戶將會啟動的動作。
KeyboardKeyCode 按鍵是用戶必須按下或按住才能夠觸發行動作。
GamepadKeyCode 遊戲控制器鍵是玩家必須按下或按住才能啟動操動作。
可視性
您可以通過其 MaxActivationDistance 、 RequiresLineOfSight 和 Exclusivity 屬性來控制靈敏度提示的時間。
最大啟動距離
Class.ProximityPrompt.MaxActivationDistance|MaxActivationDistance 屬性可讓您定義範圍從ProximityPrompt對象那裡啟動靈活提示的可見度。一旦使用者的角色進入範圍,靈機提示就會顯示。
需要視線
Class.ProximityPrompt.RequiresLineOfSight|RequiresLineOfSight 屬性啟用鏡頭到 Class.ProximityPrompt 對物件的路徑清晰時,即可啟用靠近提示。 預設值為 "真"。
獨家性
如果使用者的角色位於多個近接提示範圍內,每個近接提示的可視性都取決於攝影機所指向的近接提示,以及每個近接提示的 Exclusivity 屬性值。
交互
您可以通過其 HoldDuration 和 ClickablePrompt 屬性自訂用戶與接近提示的互動方式。
持續時間
Class.ProximityPrompt.HoldDuration|HoldDuration 屬性決定用戶在接近提示的行動啟動前需要按下的鍵數。如果此屬性有值為 0,接近提示的行動將立即啟動。
可按一下的提示
Class.ProximityPrompt.ClickablePrompt|ClickablePrompt 屬性指定用戶是否可以單擊接近提示來啟動其動作動。當 設為 真,用戶可以與接近提示直接點擊 或 按指定鍵來互動。當1>設為1>假,用戶只
設置鄰近提示
您可以連接到接近提示事件,例如在 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)