RobloxStudioで「簡単なお店(Shop)」の作成メモになります。Part1ではお店の画面を開く/閉じるまでを実装していきます。
はじめに
下記にて、RobloxStudioで「簡単なゲーム開始時のメニュー」を作成しました。今回は「簡単なお店(Shop)」を作成していきます。
製作開始
「Toolbox」から好きなショップのモデルを探してWorkSpaceに追加します。自分で作成してもOKです。

ショップのモデル内から正面のパーツを探し出して、「Part」配下に「ProximityPrompt」を追加して、配下に「Script」を追加します。

「ProximityPrompt」の名前を「ShopPrompt」に変更して、各プロパティを好きなように変更します。スクリプトは「ShopPrompt_Script」に名前を変更します。

ProximityPromptの公式リファレンスは下記になります。プロパティの説明などが記載されています。
実行してプレイヤーが近づいたときに反応すればOKです。

GUIの作成
アクションしたときに開くショップ画面を作成します。
「StarterGui」配下に「ScreenGui」を追加して名前を「ShopGui」に変更。その下に「Frame」を追加して名前を「ShopFrame」に変更、「LocalScript」を追加して名前を「ShopGui_LocalScript」に変更します。
「ShopFrame」の配下にボタンを追加し、後は見た目を好きなように変更します。

この段階では「ショップの枠」と「閉じるボタン」の作成です。
「ReplocatedStorage」に「RemotoEvent」を追加して「OpenShopEvent」に名前を変更します。

スクリプトの作成
「ShopPrompt_Script」の中身を下記に変更します。トリガーイベントを起動します。
local OpenShopEvent = game:GetService("ReplicatedStorage").OpenShopEvent
local ShopPrompt = script.Parent
ShopPrompt.Triggered:Connect(function(player)
OpenShopEvent:FireClient(player)
end)
「ShopGui_LocalScript」の中身を下記に変更します。トリガーイベントでショップを表示。閉じるボタンをショップを非表示にしています。
local OpenShopEvent = game:GetService("ReplicatedStorage").OpenShopEvent
local ShopGui = script.Parent
local shopFrame = ShopGui:WaitForChild("ShopFrame")
local CloseButton = shopFrame:WaitForChild("CloseButton")
shopFrame.Visible = false
OpenShopEvent.OnClientEvent:Connect(function()
shopFrame.Visible = true
end)
CloseButton.MouseButton1Click:Connect(function()
shopFrame.Visible = false
end)
実行して、下記のようにショップ画面を開く/閉じるが出来たらOKです。

