Thùng UI trên màn hình

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

Thùng chứa ScreenGui hiển thị GuiObjects trên màn hình của người chơi, bao gồm khung , nhãn , nút và nhiều hơn nữa.Tất cả các đối tượng UI trên màn hình và mã được lưu và thay đổi trên máy khách

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

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

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

Khi một trải nghiệm phát triển theo phạm vi, 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 thùng chứa duy nhất ScreenGui bên trong StarterGui và chuyển đổi từng thuộc tính của mỗi thùng chứa Enabled tùy thuộc vào việc nó có nên hiển thị và hoạt động (trong khi false, nội dung sẽ không được hiển thị, xử lý đầu vào của người dùng hoặc cập nhật đáp ứng lại các thay đổi).

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

Thuộc tính có thể ban đầu được chuyển đổi thông qua cửa sổ Tính năng và/hoặc bạn có thể đặt nó trong thời gian chơi từ một kịch bản bên khách bằng cách truy cập vào người chơi's và đặt nó thành hoặc đối với các thùng chứa mong muốn.

Thuộc tính của container

Các thuộc tính sau cho phép bạn tùy chỉnh các khối hiển thị trên màn hình trên nhiều thiết bị, thứ tự hiển thị khi sử dụng nhiều thùng chứa màn hình, và nhiều hơn nữa.

Các khối chè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 khuyết, cắt và các yếu tố khác chiếm không gian màn hình.Mỗi trải nghiệm Roblox cũng bao gồm các điều khiển thanh trên cùng cho 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.

Mobile device showing Roblox top bar buttons and device cutout.

Để đảm bảo người chơi có thể dễ dàng nhìn thấy và truy cập tất cả các giao diện người dùng mà không có sự cản trở, Roblox cung cấp thuộc tính ScreenInsets kiểm soát khu vực an toàn cho nội dung của một ScreenGui .

Mặc định của CoreUISafeInsets giữ tất cả các con trai GuiObjects bên trong khu vực an toàn UI chính, loại bỏ các nút thanh trên cùng và các cắt màn hình khác.Cài đặt này được đề xuất nếu ScreenGui có chứa các thành phần UI tương tác.

Mobile device showing the core UI safe area.

Hiển thị thứ tự

Khi sử dụng nhiều giao diện ScreenGui khác nhau, bạn có thể xếp chúng theo thứ tự Z‑index thông qua thuộc tính DisplayOrder của chúng.Ví dụ, để hiển thị một menu cài đặt bật lên trên một ScreenGui trước giao diện chính người dùng của trải nghiệm trên một ScreenGui khác, gán một cấp cao hơn DisplayOrder cho menu bật lên hơn giao diện cơ sở.

Đặt lại khi sinh sản

Thuộc tính boolean ResetOnSpawn xác định xem có phải ScreenGui đặt lại (tự xóa bản thân và sao chép lại vào nhân vật của người chơi PlayerGui) mỗi khi nhân vật của người chơi tái sinh.

Điều kiệnĐặt lại
ResetOnSpawntrue (mặc định).
yes
The ScreenGui là một con cháu gián tiếp của StarterGui ; ví dụ nó được đặt bên trong một Folder nằm trong StarterGui .
yes
ResetOnSpawnfalse ScreenGui là một con cháu trực tiếp của StarterGui .
no

Truy cập UI người chơi

Như đã lưu ý, nuôi dưỡng một ScreenGui đến StarterGui nhân bản nó và con của nó GuiObjects vào một khối chứa của người chơi PlayerGui khi họ tham gia vào trải nghiệm và nhân vật của họ đầu tiên xuất hiện.

Nếu bạn cần kiểm soát container UI của một người chơi trong thời gian chơi, ví dụ để hiển thị/ẩn một cụ thể ScreenGui hoặc bất kỳ con của nó, truy cập nó như sau từ một LocalScript :

LocalScript - Truy cập một người chơi'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 -- Ẩn màn hình tiêu đề
settingsMenu.Enabled = true -- Show settings menu

Vô hiệu hóa giao diện mặc định UI

Tất cả các trải nghiệm Roblox bao gồm một số thành phần UI được bật mặc định.Nếu bạn không cần bất kỳ thành phần nào trong số này hoặc muốn thay thế chúng bằng sáng tạo của riêng bạn, bạn có thể sử dụng phương pháp SetCoreGuiEnabled() trong kịch bản bên khách với tùy chọn Enum.CoreGuiType đi kèm.

Giao diện mặc địnhLiên kết enum
Danh sách được cập nhật năng động Players được sử dụng phổ biến như một bảng xếp hạng .Enum.CoreGuiType.PlayerList
Thanh nhân vật Health của nhân vật. Không xuất hiện nếu nhân vật của bạn Humanoid ở trạng thái sức khỏe tối đa.Enum.CoreGuiType.Health
Nhân vật của Backpack chứa công cụ trong kinh nghiệm . Không xuất hiện nếu không có Tools trong ba lô.Enum.CoreGuiType.Backpack
Cửa sổ trò chuyện văn bản.Enum.CoreGuiType.Chat
Menu bật lên của nhân vật biểu cảm .Enum.CoreGuiType.EmotesMenu
Một cửa sổ hiển thị quan điểm hoặc cái nhìn của người chơi về nhân vật của riêng họ.Không xuất hiện trừ khi người chơi đã bật Tự xem từ menu Roblox.Enum.CoreGuiType.SelfView
Một nút chụp ảnh màn hình ở bên phải của màn hình.Không xuất hiện trừ khi người chơi đã bật Bắt giữ từ menu Roblox.Enum.CoreGuiType.Captures
Core UI elements in every Roblox experience.
Tập lệnh khách hàng - Vô hiệu hóa các thành phần UI mặc định

local StarterGui = game:GetService("StarterGui")
-- Vô hiệu hóa thanh sức khỏe và ba lô mặc định
StarterGui: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 gạt ảo và một nút nhảy mặc định.Nếu cần, bạn có thể ẩn các thành phần này bằng cách đặt GuiService.TouchControlsEnabled đến false trong một kịch bản bên khách.

UI elements for touch-capable devices in every Roblox experience
Tập lệnh khách hàng - Vô hiệu hóa điều khiển chạm

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