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が再表示される問題を回避できます。これにより、プレイヤーはゲームを中断されることなくスムーズに続けることができます。
コメント