屏幕 UI 容器

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

ScreenGui 容器持有 GuiObjects 以在玩家的屏幕上显示,包括 框架标签按钮 等。所有屏幕上的 UI 对象和代码都存储并在客户端上更改。

示例 ScreenGui,包含多个 GuiObject 子项,包括一个 Frame、TextLabel、TextBox 和 ImageButton。

要将 ScreenGui 及其子 GuiObjects 显示给每个加入体验的玩家,请将其放置在 StarterGui 容器内。当玩家加入体验并首次生成角色时,ScreenGui 及其内容会克隆到该玩家的 PlayerGui 容器中,该容器位于 Players 容器内。

ScreenGui 从 StarterGui 克隆到玩家的 PlayerGui 的示意图

随着体验范围的扩大,您可能需要多个屏幕界面,例如标题屏幕、设置菜单、商店界面等。在这种情况下,您可以在 StarterGui 内放置多个独特的 ScreenGui 容器,并根据其是否应可见和活动来切换每个容器的 Enabled 属性(当 false 时,内容将不会渲染、处理用户输入或响应变化)。

资源管理器层次结构显示多个 ScreenGui 容器,一个启用,其他禁用,以便控制在给定时间内可见的内容。

Enabled 属性可以通过 属性 窗口初始切换,或者您可以在游戏期间通过 访问 玩家 PlayerGui 将其设置为 truefalse 以适用于所需的容器。

容器属性

以下属性允许您跨多个设备自定义 屏幕插入、在使用多个屏幕容器时的 显示顺序 等。

屏幕插入

现代手机利用整个屏幕,但通常包含缺口、切口和其他占用屏幕空间的元素。每个 Roblox 游戏还包括 顶栏控件,可快速访问主菜单、聊天排行榜 等。

移动设备显示 Roblox 顶栏按钮和设备切口。

为了确保玩家能够轻松访问所有 UI,而不受阻碍,Roblox 提供了 ScreenInsets 属性,该属性控制 ScreenGui 内容的 安全区域 内边距。

CoreUISafeInsets 的默认设置使所有子代 GuiObjects 保持在核心 UI 安全区域内,远离顶栏按钮和其他屏幕切口。如果 ScreenGui 包含交互式 UI 元素,建议使用此设置。

移动设备显示核心 UI 安全区域。

显示顺序

使用多个 ScreenGui 界面时,您可以通过其 DisplayOrder 属性按 Z 轴索引对它们进行分层。例如,要在一个 ScreenGui 中显示模态设置菜单在体验的主用户界面前面,请给予模态一个比底层界面更高的 DisplayOrder

重置时生成

ResetOnSpawn 布尔属性决定每当玩家的角色重生时,ScreenGui 是否重置(删除自身并在玩家的 PlayerGui 中重新克隆)。

条件重置
ResetOnSpawntrue(默认)。
ScreenGuiStarterGui间接子孙;例如,它被放置在位于 StarterGui 内的 Folder 中。
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 是我们在美国及其他国家或地区的注册与未注册商标。