近接プロンプト

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

ProximityPrompt オブジェクトは、ドア、ライトスイッチ、ボタンなどの経験オブジェクトに近づくと、アクションをトリガーするようにユーザーの相互作用を促進します。このオブジェクトを使用すると、次のことができます:

  • ユーザーがエクスペリエンスで相対できるオブジェクトを示します。
  • ユーザーがオブジェクトに取ることができるアクションを表示し、キーを押すか押し続けるなどのユーザーの入力を介してアクションをトリガーします。
  • キーボード、ゲームパッド、タッチスクリーンキーなど、すべての入力タイプの正しい入力を表示します。

近接プロンプトを作成する

ユーザーが相対する部分、モデル、または添付ファイルを指定する必要があります。You must parent proximity prompts to the part, model, or attachment that you want a user to interact with.BasePartModel、または Attachment オブジェクトに近接プロンプトを追加するには:

  1. エクスプローラー ウィンドウで、BasePartModel、またはAttachmentをホバーし、⊕ボタンをクリックします。コンテキストメニューが表示됩니다。

  2. メニューから、 近接プロンプト を挿入します。

    Explorer hierarchy showing a ProximityPrompt parented to an Attachment

近接プロンプトをカスタマイズする

近接プロンプトをカスタマイズすることができます。近接プロンプトが 表示される 方法、表示される 方法、ユーザーが アクションをトリガーする 方法に基づいて、ユーザーが行うことを指定します。

外観

近接プロンプトは 3 つのことを伝える必要があります:

  • ユーザーが交流できる オブジェクト
  • 近接プロンプトと対話するときにトリガーされる アクション
  • ユーザーが押すか保持する必要のある キー

次のプロパティを通じてこれらを指定できます:

  • ObjectText ユーザーが対話できるオブジェクトのオプション名。

  • ActionText ユーザーがトリガーするアクションのオプション名。

  • KeyboardKeyCode ユーザーがアクションをトリガーするために押すか保持する必要のあるキーボードキー。

  • GamepadKeyCode ユーザーがアクションをトリガーするために押すか保持する必要のあるゲームパッドキー。

    Diagram indicating basic elements of a ProximityPrompt

視認性

プロキシミティプロンプが表示される時間を、MaxActivationDistanceRequiresLineOfSight、およびExclusivityプロパティを通じて制御できます。

最大活性距離

MaxActivationDistance プロパティでは、近接プロンプトの表示を有効にする ProximityPrompt オブジェクトの範囲を定義できます。ユーザーのキャラクターがその範囲に入ると、近接プロンプトが表示されます。

Diagram indicating how a character's distance from a ProximityPrompt object affects whether the prompt appears on screen

視界ラインが必要

RequiresLineOfSight プロパティは、 カメラ から ProximityPrompt への明確なパスがあるとき、近接プロンプトの表示を有効にします。デフォルトでは、このプロパティは true に設定されます。

排他性

ユーザーのキャラクターが複数の近接プロンプトの範囲内にある場合、各近接プロンプトの視認性は、カメラが指している近接プロンプトの数、および各近接プロンプトの Exclusivity プロパティ値に依存します。

ProximityPrompt objects set to exclusivity of OnePerButton
入力キーコードごとに近接プロンプトは 1つしか表示されません。複数の近距離プロンプトが異なるキーコードを使用している場合、すべて表示されます。ただし、複数のインレンジ近接プロンプトが同じキーコードを使用する場合、カメラのビュー方向に応じて、同時に1つの近接プロンプトのみが表示されます。

相互作用

ユーザーが近接プロンプトとどのように対話するかをカスタマイズできます 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)