完成動画
はじめに
この記事では、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)を一括削除する方法をご紹介しました。




コメント