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

要将 ScreenGui 和其子 GuiObjects 显示给每个加入体验的玩家,将其放置在 StarterGui 容器内。当玩家加入体验时,其角色首先生成时,ScreenGui和其内容将复制到位于PlayerGui容器内的那个玩家的容器中,该容器位于Players容器内。

随着体验的范围扩大,您可能需要多个屏幕界面,例如标题屏幕、设置菜单、商店界面等。在这些情况下,您可以将多个独特的 容器放置在 内,根据是否应该显示和激活切换每个容器的 属性,而内容不会渲染、处理用户输入或更新以响应更改)。

Enabled可以初始通过属性窗口切换,或者你可以在游戏时间通过访问玩家的PlayerGui并将其设置为true或false为所需的容器。
容器属性
以下属性可让您在多个设备上自定义屏幕插入,在使用多个屏幕容器时显示顺序,以及更多。
屏幕插入
现代手机利用整个屏幕,但通常包括占用屏幕空间的钮钮、切割和其他元素。每个 Roblox 体验还包括快速访问主菜单、聊天、排行榜等顶部栏控件以及更多内容。

为了确保玩家可以轻松看到和访问所有界面,Roblox 提供了 ScreenInsets 属性,该属性控制 安全区 插入的内容,用于 ScreenGui 的内容。
默认值 CoreUISafeInsets 将所有子孙 GuiObjects 放在核心 UI 安全区域内,清除顶部栏按钮和其他屏幕切割部分。如果 ScreenGui 包含互动用户界面元素,建议使用此设置。

显示顺序
当使用多个ScreenGui接口时,您可以通过Z‑index将它们堆叠在其DisplayOrder属性上。例如,要在另一个 上显示一个模态设置菜单在体验主用户界面前,分配更高的 给模态比底层接口。
在生成时重生点
布尔属性决定是否每次重生时玩家角色都会重置 (删除自己并重新克隆到玩家的 )。
条件 | 重置 |
---|---|
ResetOnSpawn 是 true (默认)。 | yes |
是 间接 子孙的 ;例如,它放置在 位于 内的 中。 | yes |
ResetOnSpawn 是 false 和 ScreenGui 是 直接 后裔的 StarterGui 。 | no |
访问玩家界面
如已注意到的那样,将 克隆到 一个玩家的 容器中,当他们加入体验时,其父亲和孩子 将被克隆到玩家的 容器中,当他们的角色首次生成时。
如果需要在游戏时控制玩家的 UI 容器,例如显示或隐藏特定的 ScreenGui 或其子元素,从 LocalScript 访问如下:
本地脚本 - 访问玩家's 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 -- Show settings menu
禁用默认 UI
所有 Roblox 体验都包含默认启用的几个用户界面元素。如果你不需要任何这些元素或者想用自己的创作替换它们,你可以在客户端脚本中使用 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 |

客户端脚本 - 禁用默认 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