完成動画
はじめに
この記事では、GUIのボタンをクリックするとBackpack内の道具(Tool)がすべて削除される簡単な仕組みをご紹介します。
使用する主な機能
- TextButton:クリック可能なボタンUI
- LocalScript:ローカルプレイヤーに対して動作するスクリプト
- Backpack:プレイヤーが所持している道具(Tool)の入れ物
- Destroy():オブジェクトを削除する関数
手順動画
エクスプローラー構成
StarterGui
└ScreenGui
└TextButton
└LocalScript
実装するにあたっての考え方
Robloxでは、プレイヤーの持ち物(道具)は「Backpack」というコンテナの中に格納されており、このBackpackに入っているツール(Tool)がインベントリとしてゲーム画面に表示されます。つまり、Backpackの子要素を削除すれば、そのプレイヤーの持ち物リストから道具を消すことができるという仕組みです。
今回は、LocalScriptを使ってこの処理を実装します。
ローカルスクリプトの内容
local button = script.Parent
local player = game.Players.LocalPlayer
local backpack = player:WaitForChild("Backpack")
button.MouseButton1Click:Connect(function()
for _, item in ipairs(backpack:GetChildren()) do
if item:IsA("Tool") then
item:Destroy()
end
end
end)
1. ボタンの取得
local button = script.Parent
この行では、LocalScript
の親要素であるTextButton
を取得しています。script.Parent
を使うことで、スクリプトが置かれているTextButton
を直接参照できます。
2. プレイヤー情報の取得
local player = game.Players.LocalPlayer
この行では、現在ゲームをプレイしているプレイヤー(ローカルプレイヤー)を取得しています。LocalScript
内ではLocalPlayer
を使って、スクリプトを実行しているプレイヤーにアクセスできます。
3. Backpack(持ち物)の取得
local backpack = player:WaitForChild("Backpack")
この行では、プレイヤーのBackpack
を取得しています。Backpack
はツール(Tool)を持つ場所で、ゲーム中の持ち物リストに該当します。WaitForChild
を使うことで、Backpack
が読み込まれるまで待機し、エラーを防いでいます。
4. ボタンが押されたときの処理の設定
button.MouseButton1Click:Connect(function()
ここでは、ボタンがクリックされたときに呼び出される関数を設定しています。MouseButton1Click
は左クリックに反応し、Connect
で後続の処理をイベントとして登録しています。
5. Backpack内のアイテムをすべて確認
for _, item in ipairs(backpack:GetChildren()) do
このループでは、Backpack
の中にあるすべてのアイテムを1つずつ取り出しています。ipairs
は順番にすべての子要素(Tool
など)を処理するために使われます。
6. Toolだけを削除する処理
if item:IsA("Tool") then
item:Destroy()
end
ここでは、持ち物の中からTool
(ツール)であるものだけを選び、削除しています。IsA("Tool")
でツールかどうかを確認し、Destroy()
でそのアイテムをゲーム内から消します。
まとめ
今回は、GUIボタンをクリックすることでプレイヤーの持ち物リストにある道具(Tool)を一括削除する方法をご紹介しました。
コメント