ProximityPrompt オブジェクトは、ユーザーがドア、ライトスイッチ、ボタンなどのインエクスペリエンスオブジェクトに近づいたときにアクションをトリガーするように促します。このオブジェクトを使用すると、次のことができます:
- ユーザーがエクスペリエンスで何と対話できるかを示すオブジェクト。
- ユーザーがオブジェクトで取得できるアクションを表示し、ユーザーの入力を通じてアクションをトリガーします。たとえば、キーを押すか、または持つなどのユーザーの入力。
- キーボード、ゲームパッド、タッチスクリーンのキーなど、すべての入力の正しい入力を表示します。
近接プロンプトの作成
ユーザーがインタラクトしたいパーツ、モデル、または付属物に近接プロンプトを親にする必要があります。BasePart、Model、またはAttachmentオブジェクトに近接プロンプトを追加するには:
メニューから ProximityPrompt を挿入します。
近接プロンプトをカスタマイズ
ユーザーが 「アクションをトリガーする」 を 「見えるようにする」 という方法でカスタマイズできる近接プロンプトは、見えるようにする という方法でカスタマイズしたプロンプトと、アクションをトリガーする という方法でカスタマイズしたプロンプトの両方です。
外観
近接プロンプトは以下の 3つのことを伝達する必要があります:
- ユーザーがインタラクトできる オブジェクト 。
- 近接プロンプトとインタラクトするときにトリガーされる アクション 。
- ユーザーが押すか、持つ必要がある キー 。
次のプロパティを通じて指定できます:
ObjectText ユーザーがインタラクトできるオブジェクトのオプション名。
ActionText ユーザーがトリガーするアクションのオプション名。
KeyboardKeyCode ユーザーがアクションをトリガーするために押すか、またはキーを長押しする必要があるキーボードのキー。
GamepadKeyCode ゲームパッドのキーは、ユーザーがアクションをトリガーするために押すか、または持っている必要があります。
可視性
近接プロンプトが表示されるときに、MaxActivationDistance、RequiresLineOfSight、および Exclusivity プロパティを通じて、2>Class.ProximityPrompt.MaxActivationDistance|MaxActivationDistance
最大アクティベーション距離
Class.ProximityPrompt.MaxActivationDistance|MaxActivationDistance プロパティを使用すると、近接ポンプトの可視性を有効にする ProximityPrompt オブジェクトの範囲を定義できます。ユーザーのキャラクターがその範囲に入ると、近接ポンプトが可視になります。
必要な矢印
Class.ProximityPrompt.RequiresLineOfSight|RequiresLineOfSight プロパティは、 カメラ からProximityPrompt オブジェクトへのクリアなパスがあるときに近接プロンプトの可視性を有効にします。デフォルトでは、このプロパティは 1>True1> に設定されます。
排他性
ユーザーのキャラクターが複数の近接プロンプトの範囲内にある場合、各近接プロンプトの可視性は、カメラが指しているプロンプトの種類と、それぞれの近接プロンプトの Exclusivity プロパティ値によります。
インタラクティビティ
ユーザーが近接プロンプトとどのようにインタラクトするかをカスタマイズするには、HoldDuration および ClickablePrompt プロパティを通じて。
持続時間
Class.ProximityPrompt.HoldDuration|HoldDuration プロパティは、ユーザーが近接プロンプトのアクションをトリガーする前にキーを押す必要がある秒数を決定します。このプロパティには 0 の値がある場合、近接プロンプトのアクションはすぐにトリガーされます。
クリック可能なプロンプト
Class.ProximityPrompt.ClickablePrompt|ClickablePrompt プロパティは、ユーザーが近接プロンプキーをクリックしてアクションをトリガーできるかどうかを指定します。 true に設定されると、ユーザーは近接プロンプトを直接クリッキーして
近接プロンプトをスクリプト
Class.ProximityPrompt オブジェクト自体またはグローバルに通じる ProximityPromptService を通じて、近接リマインダーイベントに接続できます。ProximityPromptService は、あなたのエクスペリエンスで複製コードが必要ないように、1>Class.ProximityPrompt1> の
イベント | 説明 |
---|---|
PromptTriggered | プレイヤーが近接プロンプトにインタラクトすると、Class.ProximityPrompt.HoldDuration|HoldDuration の期間後にファイアを起動します。 |
PromptTriggerEnded | 近接プロンプトとのインタラクションを停止したときにトリガーされます。 |
PromptButtonHoldBegan | 近接プロンプトとインタラクトするときに、HoldDuration の値で始まります。 |
PromptButtonHoldEnded | 近接プロンプトが Class.ProximityPrompt.HoldDuration|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)