螢幕上的 UI 容器

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

ScreenGui 容器用來持有 GuiObjects,以便在玩家的螢幕上顯示,包括 框架標籤按鈕 等等。所有螢幕上的 UI 物件和代碼都存儲並在客戶端變更。

範例 ScreenGui,包含各種 GuiObject 子項,例如 Frame、TextLabel、TextBox 和 ImageButton。

要顯示 ScreenGui 及其子 GuiObjects 給每位進入體驗的玩家,將其放置在 StarterGui 容器內。當玩家進入體驗並首次生成角色時,ScreenGui 及其內容會複製到該玩家的 PlayerGui 容器中,該容器位於 Players 容器內。

顯示如何從 StarterGui 複製到玩家的 PlayerGui 的圖示。

隨著體驗範圍的增長,您可能需要多個螢幕介面,例如標題螢幕、設置菜單、商店介面等。在這種情況下,您可以將多個獨特的 ScreenGui 容器放置在 StarterGui 中,並根據是否應該可見和啟用來切換每個容器的 Enabled 屬性(當設為 false 時,內容將不會渲染、處理使用者輸入或對更改作出更新)。

顯示多個 ScreenGui 容器的資源管理器層級,其中一個啟用而其他禁用,以控制哪些在特定時間內可見。

Enabled 屬性可以通過 屬性 窗口最初切換,或您可以在遊玩期間從客戶端腳本中 訪問 玩家 的 PlayerGui,並將其設置為所需容器的 truefalse

容器屬性

以下屬性讓您可以自訂不同設備的 螢幕邊距、使用多個螢幕容器時的 顯示順序 等。

螢幕邊距

現代手機利用整個屏幕,但通常包括缺口、切口和其他佔用屏幕空間的元素。每個 Roblox 遊戲還包括快速訪問主菜單、聊天排行榜等的 頂部控制條

顯示 Roblox 頂部控制按鈕和設備切口的移動設備。

為了確保玩家能夠輕鬆訪問和查看所有 UI 而不受阻礙,Roblox 提供了 ScreenInsets 屬性,該屬性控制 ScreenGui 內容的 安全區域

CoreUISafeInsets 的默認設置會將所有後裔 GuiObjects 保持在核心 UI 安全區域內,遠離頂部控制按鈕和其他屏幕切口。如果 ScreenGui 包含互動 UI 元素,建議使用此設置。

顯示核心 UI 安全區域的移動設備。

顯示順序

使用多個 ScreenGui 接口時,您可以通過其 DisplayOrder 屬性按 Z 索引來堆疊它們。例如,若要在一個 ScreenGui 上顯示一個模態設置菜單,並將其顯示在另一個 ScreenGui 的主要用戶界面前面,請為模態介面分配一個高於底層介面的 DisplayOrder

重置於生成時

ResetOnSpawn 布林值屬性決定 ScreenGui 是否在玩家的角色重生時重置(刪除自身並重新克隆到玩家的 PlayerGui 中)。

條件重置
ResetOnSpawntrue(預設)。
ScreenGuiStarterGui間接 子孫;例如,它放置在位於 StarterGuiFolder 中。
ResetOnSpawnfalse ScreenGuiStarterGui直接 子孫。

訪問玩家的 UI

如前所述,將 ScreenGui 作為 StarterGui 的父項會在玩家加入體驗並首次生成角色時,將其及其子 GuiObjects 複製到玩家的 PlayerGui 容器中。

如果您需要在遊玩期間控制玩家的 UI 容器,例如顯示/隱藏特定的 ScreenGui 或其任何子項,請從 LocalScript 中這樣訪問:

LocalScript - 訪問玩家的 UI

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

所有 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
每個 Roblox 遊戲中的核心 UI 元素。
客戶端腳本 - 禁用預設 UI 元素

local StarterGui = game:GetService("StarterGui")
-- 禁用預設的健康條和背包
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Health, false)
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Backpack, false)

此外,具備觸控能力的設備預設包括虛擬搖杆和跳躍按鈕。如果需要,您可以在客戶端腳本中將 GuiService.TouchControlsEnabled 設置為 false 來隱藏這些元素。

每個 Roblox 遊戲中針對觸控設備的 UI 元素。
客戶端腳本 - 禁用觸控控制

local GuiService = game:GetService("GuiService")
GuiService.TouchControlsEnabled = false
©2026 Roblox Corporation、Roblox、Roblox 標誌及 Powering Imagination 是我們在美國及其他國家地區的部分註冊與未註冊商標。