ボタンを押すと、車が出現するようにします。
- Workspace に Part を1つ追加します。(これがボタンになります)
- Toolbox から車の Model を探し、Workspace に挿入します。
- Part から少し離れたところに Model を移動します。
- Model の名前を「Car」にします。
- その Model を ReplicatedStorage にドラッグします。(画面上から車が消えます)
- Part に Script を追加します。
- Part に ClickDetector を追加します。
最初から、Workspace 上に表示したくないものは、ReplicatedStorage の中に入れておきます。
local clickdetector = script.Parent:WaitForChild("ClickDetector")
clickdetector.MouseClick:Connect(function(player)
local car = game.ReplicatedStorage.Car
local model = car:Clone() -- モデルを作成
model.Parent = game.Workspace -- 親に接続
model:MakeJoints() -- モデルを結合します(これが不要なモデルもあります)
end)
下記のようなコーディング方法もあります。
local clickdetector = script.Parent:WaitForChild("ClickDetector")
clickdetector.MouseClick:Connect(function(player)
local rs = game:GetService("ReplicatedStorage")
local car = rs:WaitForChild("Car")
local model = car:Clone() -- モデルを作成
model.Parent = game.Workspace -- 親に接続
model:MakeJoints() -- モデルを結合します(これが不要なモデルもあります)
end)
上記の例ではボタンをクリックするごとに車が無限に出現します。出現台数を制限したい場合は、カウンターを設ければよいでしょう。
local clickdetector = script.Parent:WaitForChild("ClickDetector")
local counter = 5 -- 5台まで出現可能
clickdetector.MouseClick:Connect(function(player)
if counter > 0 then
local rs = game:GetService("ReplicatedStorage")
local car = rs:WaitForChild("car")
local model = car:Clone() -- モデルを作成
model.Parent = game.Workspace -- 親に接続
model:MakeJoints() -- モデルを結合します(これが不要なモデルもあります)
counter = counter - 1
end
end)
ServerStorage
ReplicatedStorageの他に、ServerStorageというものがあります。どちらもモデルを保管しておくことができるフォルダですが、ReplicatedStorageの方は、LocalScriptからでもアクセスできるという点が異なります。LocalScriptからアクセスする必要がない場合は、ServerStorageの方に入れた方がメモリ消費を抑えられますのでそちらの方を使用しましょう。