Bộ chứa ScreenGui giữ GuiObjects để hiển thị trên màn hình của người chơi, bao gồm frames, labels, buttons và nhiều hơn nữa. Tất cả các đối tượng UI trên màn hình và mã đều được lưu trữ và thay đổi trên phía client.

Để hiển thị một ScreenGui và các đối tượng GuiObjects con của nó cho mọi người chơi tham gia trải nghiệm, hãy đặt nó bên trong bộ chứa StarterGui. Khi một người chơi tham gia trải nghiệm và nhân vật của họ lần đầu tiên xuất hiện, ScreenGui và nội dung của nó sẽ được sao chép vào bộ chứa PlayerGui cho người chơi đó, nằm trong bộ chứa Players.

Khi một trải nghiệm phát triển về quy mô, bạn có thể cần nhiều giao diện màn hình như màn hình tiêu đề, menu cài đặt, giao diện cửa hàng và nhiều hơn nữa. Trong những trường hợp như vậy, bạn có thể đặt nhiều bộ chứa ScreenGui độc nhất bên trong StarterGui và bật/tắt thuộc tính Enabled của từng bộ chứa tùy thuộc vào việc nó có nên được hiển thị và hoạt động hay không (khi là false, nội dung sẽ không hiển thị, xử lý đầu vào người dùng hoặc cập nhật theo các thay đổi).

Thuộc tính Enabled có thể được bật/tắt ban đầu thông qua cửa sổ Thuộc tính và/hoặc bạn có thể thiết lập nó trong thời gian chơi từ một kịch bản phía client bằng cách truy cập PlayerGui của người chơi và đặt nó thành true hoặc false cho các bộ chứa mong muốn.
Thuộc tính bộ chứa
Các thuộc tính sau cho phép bạn tùy chỉnh đường viền màn hình trên nhiều thiết bị, thứ tự hiển thị khi sử dụng nhiều bộ chứa màn hình và nhiều hơn nữa.
Đường viền màn hình
Các điện thoại hiện đại tận dụng toàn bộ màn hình nhưng thường bao gồm các lỗ khoét, phần cắt và các yếu tố khác chiếm không gian màn hình. Mỗi trò chơi Roblox cũng bao gồm các thao tác thanh điều khiển cho việc truy cập nhanh vào menu chính, trò chuyện, bảng xếp hạng, và nhiều hơn nữa.

Để đảm bảo người chơi có thể nhìn thấy và truy cập tất cả giao diện người dùng một cách dễ dàng và không bị cản trở, Roblox cung cấp thuộc tính ScreenInsets điều khiển các phần khoanh an toàn cho nội dung của một ScreenGui.
Mặc định của CoreUISafeInsets giữ tất cả các GuiObjects con bên trong vùng an toàn của giao diện core UI, không bị che khuất bởi các nút thanh điều khiển và các lỗ cắt của màn hình. Cài đặt này được khuyến nghị nếu ScreenGui chứa các yếu tố giao diện người dùng tương tác.

Thứ tự hiển thị
Khi sử dụng nhiều giao diện ScreenGui, bạn có thể xếp chồng chúng bằng cách sử dụng chỉ số Z thông qua thuộc tính DisplayOrder. Ví dụ, để hiển thị một menu cài đặt modal trên một ScreenGui phía trước giao diện người dùng chính của trải nghiệm trên một ScreenGui khác, hãy gán một DisplayOrder cao hơn cho menu modal so với giao diện phía dưới.
Đặt lại khi xuất hiện
Thuộc tính boolean ResetOnSpawn xác định xem ScreenGui có được đặt lại (xóa chính nó và sao chép lại vào PlayerGui của người chơi) mỗi khi nhân vật của người chơi xuất hiện lại hay không.
| Điều kiện | Đặt lại |
|---|---|
| ResetOnSpawn là true (mặc định). | CÓ |
| Bộ chứa ScreenGui là một hậu duệ gián tiếp của StarterGui; ví dụ, nó được đặt bên trong một Folder nằm trong StarterGui. | CÓ |
| ResetOnSpawn là false và bộ chứa ScreenGui là một hậu duệ trực tiếp của StarterGui. | KHÔNG |
Truy cập UI của người chơi
Như đã đề cập, việc gán một ScreenGui cho StarterGui sẽ sao chép nó và các đối tượng GuiObjects con của nó vào bộ chứa PlayerGui của người chơi khi họ tham gia trải nghiệm và nhân vật của họ lần đầu tiên xuất hiện.
Nếu bạn cần kiểm soát bộ chứa UI của người chơi trong thời gian chơi, chẳng hạn để hiển thị/ẩn một ScreenGui cụ thể hoặc bất kỳ con nào trong số đó, hãy truy cập nó như sau từ một LocalScript:
LocalScript - Truy cập UI của người chơilocal Players = game:GetService("Players")local player = Players.LocalPlayerlocal playerGui = player.PlayerGuilocal titleScreen = playerGui:WaitForChild("TitleScreen")local settingsMenu = playerGui:WaitForChild("SettingsMenu")titleScreen.Enabled = false -- Ẩn màn hình tiêu đềsettingsMenu.Enabled = true -- Hiện menu cài đặt
Vô hiệu hóa UI mặc định
Tất cả các trò chơi Roblox bao gồm một số yếu tố UI được kích hoạt theo mặc định. Nếu bạn không cần bất kỳ yếu tố nào trong số này hoặc nếu bạn muốn thay thế chúng bằng những sáng tạo của riêng mình, bạn có thể sử dụng phương thức SetCoreGuiEnabled() trong một script phía khách hàng với tùy chọn Enum.CoreGuiType tương ứng.
| UI mặc định | enum liên quan |
|---|---|
| Danh sách Players được cập nhật động, thường được sử dụng như một bảng xếp hạng. | Enum.CoreGuiType.PlayerList |
| Thanh Health của nhân vật. Không xuất hiện nếu Humanoid của nhân vật đang ở trạng thái sức khỏe đầy đủ. | Enum.CoreGuiType.Health |
| Ba lô Backpack của nhân vật, chứa công cụ trong trò chơi. Không xuất hiện nếu không có Tools trong ba lô. | Enum.CoreGuiType.Backpack |
| Cửa sổ chat văn bản. | Enum.CoreGuiType.Chat |
| Menu popup của biểu cảm nhân vật. | Enum.CoreGuiType.EmotesMenu |
| Một cửa sổ hiển thị góc nhìn của người chơi về nhân vật của chính họ. Không xuất hiện trừ khi người chơi đã kích hoạt Góc Nhìn Bản Thân từ menu Roblox. | Enum.CoreGuiType.SelfView |
| Nút chụp ảnh màn hình nằm ở bên phải màn hình. Không xuất hiện trừ khi người chơi đã kích hoạt Chụp từ menu Roblox. | Enum.CoreGuiType.Captures |
| Công cụ Chuyển Avatar cho phép người dùng thay đổi avatar trên nền tảng của họ. | Enum.CoreGuiType.AvatarSwitcher |

Script phía khách hàng - Vô hiệu hóa các yếu tố UI mặc địnhlocal StarterGui = game:GetService("StarterGui")-- Vô hiệu hóa thanh sức khỏe và ba lô mặc địnhStarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Health, false)StarterGui:SetCoreGuiEnabled(Enum.CoreGuiType.Backpack, false)
Ngoài ra, các thiết bị có khả năng chạm bao gồm một cần điều khiển ảo và một nút nhảy theo mặc định. Nếu muốn, bạn có thể ẩn những yếu tố này bằng cách đặt GuiService.TouchControlsEnabled thành false trong một script phía khách hàng.

Script phía khách hàng - Vô hiệu hóa các điều khiển chạmlocal GuiService = game:GetService("GuiService")GuiService.TouchControlsEnabled = false