ProximityPrompt オブジェクトは、ドア、ライトスイッチ、ボタンなどの経験オブジェクトに近づくと、アクションをトリガーするようにユーザーの相互作用を促進します。このオブジェクトを使用すると、次のことができます:
- ユーザーがエクスペリエンスで相対できるオブジェクトを示します。
- ユーザーがオブジェクトに取ることができるアクションを表示し、キーを押すか押し続けるなどのユーザーの入力を介してアクションをトリガーします。
- キーボード、ゲームパッド、タッチスクリーンキーなど、すべての入力タイプの正しい入力を表示します。
近接プロンプトを作成する
ユーザーが相対する部分、モデル、または添付ファイルを指定する必要があります。You must parent proximity prompts to the part, model, or attachment that you want a user to interact with.BasePart、Model、または Attachment オブジェクトに近接プロンプトを追加するには:
エクスプローラー ウィンドウで、BasePart、Model、またはAttachmentをホバーし、⊕ボタンをクリックします。コンテキストメニューが表示됩니다。
メニューから、 近接プロンプト を挿入します。
近接プロンプトをカスタマイズする
近接プロンプトをカスタマイズすることができます。近接プロンプトが 表示される 方法、表示される 方法、ユーザーが アクションをトリガーする 方法に基づいて、ユーザーが行うことを指定します。
外観
近接プロンプトは 3 つのことを伝える必要があります:
- ユーザーが交流できる オブジェクト 。
- 近接プロンプトと対話するときにトリガーされる アクション 。
- ユーザーが押すか保持する必要のある キー 。
次のプロパティを通じてこれらを指定できます:
ObjectText ユーザーが対話できるオブジェクトのオプション名。
ActionText ユーザーがトリガーするアクションのオプション名。
KeyboardKeyCode ユーザーがアクションをトリガーするために押すか保持する必要のあるキーボードキー。
GamepadKeyCode ユーザーがアクションをトリガーするために押すか保持する必要のあるゲームパッドキー。
視認性
プロキシミティプロンプが表示される時間を、MaxActivationDistance、RequiresLineOfSight、およびExclusivityプロパティを通じて制御できます。
最大活性距離
MaxActivationDistance プロパティでは、近接プロンプトの表示を有効にする ProximityPrompt オブジェクトの範囲を定義できます。ユーザーのキャラクターがその範囲に入ると、近接プロンプトが表示されます。

視界ラインが必要
RequiresLineOfSight プロパティは、 カメラ から ProximityPrompt への明確なパスがあるとき、近接プロンプトの表示を有効にします。デフォルトでは、このプロパティは true に設定されます。
排他性
ユーザーのキャラクターが複数の近接プロンプトの範囲内にある場合、各近接プロンプトの視認性は、カメラが指している近接プロンプトの数、および各近接プロンプトの Exclusivity プロパティ値に依存します。

相互作用
ユーザーが近接プロンプトとどのように対話するかをカスタマイズできます HoldDuration および ClickablePrompt プロパティを通じて。
ホールド期間
HoldDuration プロパティは、ユーザーが近接プロンプトのアクションがトリガーされる前にキーを押す回数を決定します。このプロパティの値が 0 である場合、近接プロンプトのアクションがすぐにトリガーされます。
クリック可能なプロンプト
ClickablePrompt プロパティは、ユーザーが近接プロンプトをクリックしてアクションをトリガーできるかどうかを指定します。 真 に設定すると、ユーザーは指定のキーを押して近接プロンプトを直接クリックするか、近接プロンプトを または を押して指定のキーを押して近接プロンプトと対話できます。 偽 に設定すると、ユーザーは指定されたキーを押してのみ近接プロンプトと対話できます。
スクリプトの近接プロンプト
ProximityPrompt オブジェクト自体またはグローバルで ProximityPromptService を介して、近接プロンプイベントに接続できます。The ProximityPromptService は、1つの場所からすべての近接プロンプの動作を管理できるようにし、エクスペリエンス内の複製コードが必要なことを防ぎます。
イベント | 説明 |
---|---|
PromptTriggered | プレイヤーが近接プロンプトと対話するときに発火します(非ゼロの HoldDuration を持つプロンプトの期間の後)。 |
PromptTriggerEnded | プレイヤーが近接プロンプトとのインタラクションを停止するとトリガーが発動します。 |
PromptButtonHoldBegan | プレイヤーが非ゼロの HoldDuration 値の近接プロンプトと対話を開始すると、発火します。 |
PromptButtonHoldEnded | プレイヤーが非ゼロの HoldDuration 値の近接プロンプトとのインタラクションを停止すると、発火します。 |
PromptShown | 近接プロンプトが表示されると、トリガーが LocalScripts になります。 |
PromptHidden | プロンプトが非表示になったときのトリガー in 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)