6. 接近ボタンでアイテム(6 / 9)
STAR AI・情報塾

接近ボタンでアイテムを拾えるようにしよう

次は「 ProximityPrompt(接近ボタン) 」という部品を使って、近づいてボタンを押すとアイテムを拾えるギミックを作ってみましょう。木材や鍵などを集めるアドベンチャーゲームでよく使われる仕組みです。

  1. 拾えるアイテムにしたいパーツ(例:木材)を1つ作る
  2. そのパーツに「 ProximityPrompt 」を挿入する
  3. プロパティを設定して、見た目や反応距離を調整する
スクリーンショット挿入予定(08-003.png) 木材パーツにProximityPromptを挿入した状態
プロパティできること
ActionTextボタンの操作説明(例:「 ひろう 」)
ObjectText対象物の名前(例:「 木材 」)
HoldDurationボタンを押し続ける秒数(0にすると一瞬で反応)
KeyboardKeyCode反応させるキー(初期設定はEキー)
MaxActivationDistanceボタンが表示される距離
スクリーンショット挿入予定(08-004.png) 木材に近づいてEキーの接近ボタンが表示された画面

次に、パーツにScriptを追加して、ボタンが押された時にアイテムが消えるようにしましょう。

local part = script.Parent
local prompt = part:WaitForChild("ProximityPrompt")

prompt.Triggered:Connect(function(player)
    print(player.Name .. "が木材をひろいました")
    part:Destroy()   -- パーツを消す
end)
動作確認クリップ挿入予定(08-clip03.mp4) 木材に近づいてEキーを押し、拾って消える様子(15秒程度)
解説

Touchedは「 触れた瞬間 」に反応しましたが、prompt.Triggeredは「 プレイヤーが自分の意思でボタンを押した瞬間 」に反応します。「 通りがかっただけで発動してしまうTouched 」と「 自分の意思で操作するProximityPrompt 」、場面に応じて使い分けましょう。

アレンジ HoldDuration を2〜3秒にすると、「 少し待たないと拾えない 」緊張感のあるアイテムにできます。KeyboardKeyCode を変えれば、Eキー以外のボタンにも変更できます。

Eキーを押して拾う感覚、まさに冒険ゲームっぽい!他のアイテムにも応用したいわ。

Well done!

次のステップに進みましょう!