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

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

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

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

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

表示順序
複数のScreenGuiインターフェースを使用する場合、これらのDisplayOrderプロパティを使用してZインデックスで重ねることができます。たとえば、1つのScreenGuiでモーダル設定メニューを表示し、別のScreenGuiで体験のメインユーザーインターフェースの前に表示するには、モーダルのDisplayOrderを基盤となるインターフェースのより高い値に割り当てます。
スポーン時のリセット
ResetOnSpawnのブールプロパティは、プレイヤーのキャラクターが再スポーンするたびにScreenGuiがリセット(自分自身を削除してプレイヤーのPlayerGuiに再クローンされる)するかどうかを決定します。
| 条件 | リセット |
|---|---|
| ResetOnSpawnがtrue(デフォルト)です。 | はい |
| ScreenGuiがStarterGuiの間接的な子孫である場合、たとえばStarterGui内のFolderに配置されている。 | はい |
| ResetOnSpawnがfalse かつ ScreenGuiがStarterGuiの直接的な子孫である場合。 | いいえ |
プレイヤーUIへのアクセス
前述のように、ScreenGuiをStarterGuiに親子関係にすると、プレイヤーが体験に参加したときにそれとその子であるGuiObjectsがプレイヤーのPlayerGuiコンテナにクローンされます。
プレイヤーのUIコンテナをプレイ中に制御する必要がある場合、たとえば特定のScreenGuiやその子を表示/非表示にする場合は、以下のようにLocalScriptからアクセスします:
LocalScript - プレイヤーのUIにアクセスlocal Players = game:GetService("Players")local player = Players.LocalPlayerlocal playerGui = player.PlayerGuilocal 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 |

クライアントスクリプト - デフォルトUI要素を無効にする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