1. リスポーンでGUI再表示問題
Roblox Studioでは、プレイヤーがリスポーンするたびに、設定されたGUI(ScreenGui)が自動的に表示されます。例えば、ゲーム開始時にのみ表示したいスタートボタンも、この仕様でリスポーンの度に現れてしまいます。今回、この問題を解決する方法をご紹介します。
2. 使用する機能
・ScreenGui
・TextButtton
3. 手順
まず、Roblox Studioを起動します。今回は、テンプレート「Baseplate」を使用します。

今回の問題を解決するために、その土台を構築していきます。
プレイヤーをリスポーンさせる必要があるため、触れたら死ぬブロック(Kill brick!)を追加します。
Toolboxを開き、検索欄にkillと入力し、Kill brick!をクリックします。

次にGUIを作成していきます。
UIをクリックします。

ScreenGUIをクリックします。

TextButtonをクリックします。すると、以下画像のようにクリックできるボタンが表示されます。

TextButttonの子要素にLocalScriptを追加し、以下のコードを記入します。
-- ScreenGuiを取得
local screenGui = script.Parent.Parent
-- TextButtonを取得
local textButton = script.Parent
-- TextButtonがクリックされたときのイベントを設定
textButton.MouseButton1Click:Connect(function()
screenGui.Enabled = false
end)

この状態でゲームをプレイし、ボタンをクリックしてみます。

スクリプトが正しく動作していれば、クリックされたボタンは非表示になります。

しかし、プレイヤーがキルブロックに触れ、リスポーンされると、

スタートボタンが再び表示されています。これでは、リスポーン後にスムーズにゲームを続けることができません。

この問題を解決していきます。
ScreenGuiのプロパティにあるResetOnSpawnのチェックマークを外します。

先ほどと同様に、ボタンをクリックして、非表示にした後にリスポーンされます。

今回は、スタートボタンが表示されなくなりました。

以上のように、ScreenGuiのResetOnSpawnは、プレイヤーがリスポーンした際にGUIを初期状態にリセットするかどうかを制御するプロパティです。このオプションのチェックマークを外すことで、リスポーン時にGUIが再表示される問題を回避できます。これにより、プレイヤーはゲームを中断されることなくスムーズに続けることができます。
コメント