在畫面上的 UI 容器

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

容器 ScreenGui 包含 GuiObjects 在玩家的屏幕上顯示,包括 框架 , 標籤 , 按鈕 等。所有在畫面上的使用者介面對象和代碼都會被儲存並在客戶端變更。

Example ScreenGui with various GuiObject children, including a Frame, TextLabel, TextBox, and ImageButton.

要將 ScreenGui 和其子 GuiObjects 顯示給每個加入體驗的玩家,將它放置在 StarterGui 容器內。當玩家加入體驗並生成角色時,其角色首先重複到位於 ScreenGui 容器內的 PlayerGui 容器中,該容器位於 Players 容器內。

Diagram of how a ScreenGui clones from StarterGui to a player's PlayerGui

隨著體驗在範圍內增長,您可能需要多個螢幕介面,例如標題螢幕、設定選單、商店介面等。在這些情況下,您可以將多個獨特的 ScreenGui 容器放置在 StarterGui 內,並根據是否應該顯示和啟用來切換每個容器的 Enabled 屬性(當 false 時,內容將不會成像、處理用戶輸入或更新以回應變更)。

Explorer hierarchy showing multiple ScreenGui containers, one enabled and the others disabled, in order to control which are visible at a given time.

Enabled可以初始通過屬性窗口切換,或者你可以在游戏時間從客戶端腳本中通過訪問玩家的PlayerGui來設置它為truefalse對所需的容器。

容器屬性

以下屬性讓您可以在多個裝置上自定義 屏幕插入、在使用多個畫面容器時的顯示順序以及更多。

屏幕插入

現代手機利用整個螢幕,但通常包括斑點、切割和其他佔用螢幕空間的元素。每個 Roblox 體驗也包括 頂部欄控制 ,可快速存取主選單、聊天排行榜等。

Mobile device showing Roblox top bar buttons and device cutout.

為了確保玩家可以輕鬆地查看和訪問所有界面,Roblox 提供了 ScreenInsets 屬性,用於控制 安全區 插入的內容,以便在 ScreenGui 中的內容。

默认值 CoreUISafeInsets 將所有子孫 GuiObjects 保留在核心 UI 安全區內,清除頂部欄位按鈕和其他屏幕切割點。如果 ScreenGui 包含互動用戶介面元素,建議使用此設置。

Mobile device showing the core UI safe area.

顯示順序

當使用多個 ScreenGui 介面時,您可以通過其 DisplayOrder 屬性將它們堆疊為 Z‑index。例如,要在另一個 在體驗主用戶介面前顯示模式設定選單,將更高的 分配給模式的底層介面。

在生成時重置

布林值決定是否每次重生時玩家的角色都會重設 (刪除自己並重新複製到玩家的 )。

條件重設
ResetOnSpawntrue (預設)。
yes
ScreenGui間接 子孫的 StarterGui ;例如,它放置在 Folder 位置內的 StarterGui 內。
yes
ResetOnSpawnfalse ScreenGui直接 下一代的 StarterGui
no

存取玩家介面

如已注意,將 複製到 並將其子 複製到玩家的 容器當他們加入體驗時,當他們的角色首次重生時,將複製到玩家的 容器。

如果您需要在遊戲時控制玩家的 UI 容器,例如顯示或隱藏特定的 ScreenGui 或其子孫,請從 LocalScript 使用以下方式存取:

本地腳本 - 存取玩家's 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 -- Show settings menu

停用預設介面

所有 Roblox 體驗都包含預設啟用的多個使用者介面元素。如果您不需要這些元素或想用自己的創作取代它們,您可以在客戶端腳本中使用 SetCoreGuiEnabled() 方法和相關的 Enum.CoreGuiType 選項。

預設介面相關枚列
動態更新列表 Players ,通常用作 排行榜Enum.CoreGuiType.PlayerList
角色的 Health 條。如果角色的 Humanoid 生命值已滿,就不會出現。Enum.CoreGuiType.Health
包含 體驗工具的角色。如果背包中沒有 ,就不會出現。Enum.CoreGuiType.Backpack
文字聊天窗口Enum.CoreGuiType.Chat
角色 表情符號 的彈出菜單。Enum.CoreGuiType.EmotesMenu
一個窗口顯示玩家的視角或自己角色的視圖。玩家未從 Roblox 選單啟用 自我檢視 功能,否則不會出現。Enum.CoreGuiType.SelfView
屏幕右側的 捕捉截圖 按鈕。玩家未從 Roblox 選單啟用 捕捉 功能,否則不會出現。Enum.CoreGuiType.Captures
Core UI elements in every Roblox experience.
客戶端腳本 - 停用預設介面元素

local StarterGui = game:GetService("StarterGui")
-- 停用預設生命條和背包
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Health, false)
StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Backpack, false)

此外,具有觸摸功能的裝置會預設包含虛擬搖桿和跳躍按鈕。如果需要,您可以在客戶端腳指令碼中設置 GuiService.TouchControlsEnabledfalse 來隱藏這些元素。

UI elements for touch-capable devices in every Roblox experience
客戶端腳本 - 停用觸控控件

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