您可以創建在使用者接近 3D 空間物件時出現的互動感應提示,然後根據使用者輸入啟動行動。
本教學使用 地牢探索 項目作為展示。若要跟隨,請在繼續前先在 Studio 中打開它。

創建提示
在畫面上的提示由一個 ProximityPrompt 對象生成,該對象與 Attachment 、 BasePart 或 Model 相關。
在 3D 視圖中或從探索器中選擇 監獄門 模型 ( 工作區 → 快捷方塊 → 監獄門 ).
擴展其樹狀結構並選擇 門 對物件。
在 Attachment 上放置提示可讓您更好地控制互動點發生的位置,而不是直接放置在零件/模型上。插入新的 附件 ,並將其重命名為 提示附件 。
找到新附件的 位置 屬性,並將其設為 -2.25 、 -0.5 、- 0.5 。這將把它移到門鑰孔前面。
將鼠標懸停在 提示附件 上,然後插入新的 靠近提示 對物件。
提示出外觀
提示由三個主要元素組成,每個元素都可以由以下屬性控制:

- 對象文字 — 與對象互動的可選名稱。
- 行動文字 — 可選擇的行動名稱,顯示給使用者。
- 鍵盤鍵碼 — 會觸發提示的鍵盤鍵。
- 遊戲控制器按鍵代碼 — 會觸發提示的遊戲控制器按鍵。
要自訂監獄門提示的外觀,請作出以下變更:
在「屬性」視窗中,尋找 對象文字 屬性,並輸入 門 。
對於 行動文字 屬性,輸入 鎖定選擇 。
激活距離
當使用者的 角色 在提示對物件的父元素範圍內移動時,會出現提示。範圍包括定義的 最大激活距離 範圍。

預設值在大多數情況下運作良好,但您可以將 最大激活距離 變更為 4 ,將使用者互動更接近鎖定。

保持時間
保持時間 屬性值決定提示的行動在秒內是否會很快被觸發。因為必須選擇此門以解鎖它,將 保持時間 屬性變更為 4 。

執行一個動作
偵測提示事件的最好方法是通過 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)
事件 | 說明 |
---|---|
PromptTriggered | 當使用者與提示互動時發生火災(後非零》提示的持續時間)。 |
PromptButtonHoldBegan | 當使用者開始與非零 HoldDuration 提示互動時,發生火災。 |
PromptButtonHoldEnded | 當使用者停止與非零 HoldDuration 提示互動時發生火災 |
在 地牢探索 項目中,這些事件由 PromptEvents 腳本在 服務器腳本服務 內管理。

在腳指令碼內,上面的事件簡單地呼叫 對象行動 ModuleScript 內的函數,也位於 服務器腳本服務 中。
local ProximityPromptService = game:GetService("ProximityPromptService")
local ServerScriptService = game:GetService("ServerScriptService")
local ObjectActions = require(ServerScriptService.ObjectActions)
-- 偵測提示被觸發時
local function onPromptTriggered(promptObject, player)
ObjectActions.promptTriggeredActions(promptObject, player)
end
-- 偵測提示保留開始時間
local function onPromptHoldBegan(promptObject, player)
ObjectActions.promptHoldBeganActions(promptObject, player)
end
-- 偵測提示保留結束
local function onPromptHoldEnded(promptObject, player)
ObjectActions.promptHoldEndedActions(promptObject, player)
end
-- 連接提示事件到處理函數
ProximityPromptService.PromptTriggered:Connect(onPromptTriggered)
ProximityPromptService.PromptButtonHoldBegan:Connect(onPromptHoldBegan)
ProximityPromptService.PromptButtonHoldEnded:Connect(onPromptHoldEnded)
靠近提示是一種方便且可自訂的在遊戲物件互動的解決方案。查看 ProximityPrompt 和 ProximityPromptService 參考頁面,獲得更多方法來控制提示行為,並在 地牢探索 中探索其他互動對象以獲得創意靈感。