ScreenGuiコンテナは、プレイヤーの画面に表示するためのGuiObjectsを保持します。これには、フレーム、ラベル、ボタンなどが含まれます。すべての画面上のUIオブジェクトとコードは、クライアント上で保存および変更されます。

ScreenGuiとその子GuiObjectsをゲームに参加するすべてのプレイヤーに表示するには、StarterGuiコンテナ内に配置します。プレイヤーがゲームに参加し、キャラクターが最初にスポーンすると、ScreenGuiとその内容がそのプレイヤーのPlayerGuiコンテナにクローンされます。このコンテナはPlayersコンテナ内にあります。

ゲームがスコープを拡大するにつれて、タイトル画面、設定メニュー、ショップインターフェースなど、複数の画面インターフェースが必要になる場合があります。その場合、複数のユニークなScreenGuiコンテナをStarterGui内に配置し、各コンテナのEnabledプロパティを切り替えて、表示されるべきかどうかを制御できます(falseの場合、内容はレンダリングされず、ユーザー入力を処理せず、変更に応じて更新されません)。

Enabledプロパティは、プロパティウィンドウを通じて初期設定でき、またはプレイ中にクライアントサイドスクリプトからアクセスして、プレイヤーのPlayerGuiに対してtrueまたはfalseに設定できます。
コンテナプロパティ
以下のプロパティを使用して、複数のデバイスにわたる画面インセットや、複数の画面コンテナを使用する際の表示順序などをカスタマイズできます。
画面インセット
現代の電話は、画面全体を利用し、通常はノッチ、カットアウト、その他の要素を含み、画面スペースを占有しています。すべてのRobloxゲームは、トップバーコントロールも含まれており、メインメニュー、チャット、リーダーボード、その他に素早くアクセスできます。

プレイヤーがすべてのUIを簡単にアクセスできるようにし、遮蔽がないようにするために、RobloxはScreenInsetsプロパティを提供します。このプロパティはScreenGuiの内容に対するセーフエリアインセットを制御します。
CoreUISafeInsetsのデフォルトは、すべての子孫GuiObjectsをコアUIセーフエリア内に保ち、トップバーのボタンやその他の画面カットアウトからクリアにします。この設定は、ScreenGuiに対話型UI要素が含まれている場合に推奨されます。

表示順序
複数のScreenGuiインターフェースを使用する場合、DisplayOrderプロパティを通じてZインデックスで重ねることができます。たとえば、ゲームのメインユーザーインターフェースの前に1つのScreenGuiでモーダル設定メニューを表示するには、モーダルのDisplayOrderを基盤となるインターフェースよりも高く設定します。
スポーン時のリセット
ResetOnSpawnブールプロパティは、プレイヤーのキャラクターが再スポーンするたびにScreenGuiがリセット(自分自身を削除し、プレイヤーのPlayerGuiに再クローンされる)するかどうかを決定します。
| 条件 | リセット |
|---|---|
| ResetOnSpawnがtrue(デフォルト)です。 | はい |
| ScreenGuiがStarterGuiの間接的な子孫である場合。たとえば、StarterGui内のFolderに配置されている場合。 | はい |
| ResetOnSpawnがfalse かつ ScreenGuiがStarterGuiの直接的な子孫である場合。 | いいえ |
プレイヤーUIへのアクセス
前述のように、ScreenGuiをStarterGuiに親子関係を持たせると、プレイヤーがゲームに参加し、キャラクターが最初にスポーンするときに、そのScreenGuiとその子GuiObjectsがプレイヤーのPlayerGuiコンテナにクローンされます。
プレイ中にプレイヤーのUIコンテナを制御する必要がある場合、特定のScreenGuiまたはその子を表示/非表示にするために、LocalScriptから次のようにアクセスします。
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local playerGui = player.PlayerGui
local titleScreen = playerGui:WaitForChild("TitleScreen")
local settingsMenu = playerGui:WaitForChild("SettingsMenu")
titleScreen.Enabled = false -- タイトル画面を非表示にする
settingsMenu.Enabled = true -- 設定メニューを表示するデフォルトUIの無効化
All Roblox games include several UI elements that are enabled by default. If you don't need any of these elements or if you want to replace them with your own creations, you can use the SetCoreGuiEnabled() method in a client‑side script with the associated Enum.CoreGuiType option.
| デフォルトUI | 関連付けられた列挙体 |
|---|---|
| 動的に更新される Players リスト、一般的には リーダーボードとして使用されます。 | Enum.CoreGuiType.PlayerList |
| キャラクターの Health バー。キャラクターの Humanoid がフルヘルスの場合は表示されません。 | Enum.CoreGuiType.Health |
| キャラクターの Backpack、これは ゲーム内ツールを含んでいます。バックパックに Tools がない場合は表示されません。 | Enum.CoreGuiType.Backpack |
| テキストチャットウィンドウ。 | Enum.CoreGuiType.Chat |
| キャラクターの エモート のポップアップメニュー。 | Enum.CoreGuiType.EmotesMenu |
| プレイヤーの視点または自身のキャラクターのビューを表示するウィンドウ。プレイヤーがRobloxメニューから 自己表示 を有効化しない限り表示されません。 | Enum.CoreGuiType.SelfView |
| 画面の右側にある スクリーンショットをキャプチャ ボタン。プレイヤーがRobloxメニューから キャプチャ を有効化しない限り表示されません。 | Enum.CoreGuiType.Captures |
| アバター切り替え はユーザーがプラットフォームアバターを変更することを可能にします。 | Enum.CoreGuiType.AvatarSwitcher |

local StarterGui = game:GetService("StarterGui")
-- デフォルトのヘルスバーとバックパックを無効にする
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Health, false)
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Backpack, false)Additionally, devices with touch capabilities include a virtual thumbstick and a jump button by default. If desired, you can hide these elements by setting GuiService.TouchControlsEnabled to false in a client‑side script.

local GuiService = game:GetService("GuiService")
GuiService.TouchControlsEnabled = false