「E」キーを押して、何らかの動作を行うゲームがあります。ここでは「E」キー押下で、パーツを消すという処理を行ってみます。もちろん、マウスボタンやスマホのタップでも動作します。
- Part を1つ追加します。
- Part の中に ProximityPrompt を追加します。これが上図のプロンプトを表示するものになります。
- ProximityPrompt のプロパティ HoldDuration の値を1にします。これはキーやボタンを押し続ける時間(秒単位)になります。
- さらに Script を追加し、以下のプログラムを入力します。
local part = script.Parent
local proximityPrompt = part.ProximityPrompt
proximityPrompt.Triggered:Connect(function(player)
part:Destroy() -- パーツを消す
end)
ProximityPrompt について
ProximityPrompt は、Roblox内でユーザーとインタラクトするためのGUI要素です。プレイヤーが特定のオブジェクトに近づくと、画面に表示されるテキストやアイコンを通じてユーザーに対して何らかのアクションを促す役割を果たします。以下にProximityPrompt
のいくつかの重要なプロパティを解説します。
ActionText | これはProximityPrompt が表示するアクションに関連するテキストです。プレイヤーに対して何を行うかを示すテキストを設定することができます。例えば、ドアの近くにいるときに「開く」や「閉じる」といったテキストが表示されます。 |
HoldDuration | プレイヤーがアクションを実行する際にボタンを押している状態を保持する時間を指定します。このプロパティは秒単位で設定され、例えばドアを開ける際にボタンを長押しすることが必要な場合などに使用します。 |
GamepadKeyCode | ゲームパッドのボタンに関連するキーコードを指定します。プレイヤーがアクションを実行する際に、特定のゲームパッドのボタンを押すことを示すために使用されます。 |
KeyboardKeyCode | キーボードのキーに関連するキーコードを指定します。プレイヤーがアクションを実行する際に、特定のキーボードのキーを押すことを示すために使用されます。 |
ObjectText | これはProximityPromptが関連するオブジェクトに関する補足的な情報を提供するテキストです。例えば、NPCとの対話時に「話す」というアクションテキストの横にNPCの名前や会話の内容を表示するために使用します。 |
例
この例では、プロンプトが「開く」というアクションテキストを表示し、2秒間ボタンを押し続けることが必要です。ゲームパッドではXボタン、キーボードではEキーに対応しており、オブジェクトテキストとして「このドアを開く」という情報も表示されます。
local prompt = Instance.new("ProximityPrompt")
prompt.ActionText = "開く"
prompt.HoldDuration = 2 -- 2秒間ボタンを押し続けることが必要
prompt.GamepadKeyCode = Enum.KeyCode.ButtonX -- ゲームパッドのXボタンに対応
prompt.KeyboardKeyCode = Enum.KeyCode.E -- キーボードのEキーに対応
prompt.ObjectText = "このドアを開く"