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 索引來堆疊它們。例如,若要在一個 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 - 訪問玩家的 UIlocal 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
所有 Roblox 遊戲都包括若干預設啟用的 UI 元素。如果您不需要這些元素,或希望用自己的創作替換它們,可以在客戶端腳本中使用 SetCoreGuiEnabled() 方法,並選擇相應的 Enum.CoreGuiType 選項。
| 預設 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)
此外,具備觸控能力的設備預設包括虛擬搖杆和跳躍按鈕。如果需要,您可以在客戶端腳本中將 GuiService.TouchControlsEnabled 設置為 false 來隱藏這些元素。

客戶端腳本 - 禁用觸控控制local GuiService = game:GetService("GuiService")GuiService.TouchControlsEnabled = false