Menu Ngữ Cảnh Avata

*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.

Menu Ngữ Cảnh Avata (ACM) giúp người dùng dễ dàng tương tác với nhau hơn. Khi ACM được bật trong trò chơi của bạn, một người dùng có thể tiến lại gần nhân vật của một người dùng khác và nhấn vào họ để mở một menu nhỏ với một vài tùy chọn mặc định. Người chơi có thể gửi yêu cầu kết bạn, bắt đầu trò chuyện riêng tư, xem hồ sơ của người dùng, hoặc vẫy tay.

Sau khi bật ACM trong trò chơi của bạn, bạn có thể tùy chỉnh ACM theo những cách sau:

Bật Menu Ngữ Cảnh Avata

Menu Ngữ Cảnh Avata phải được bật bằng cách sử dụng tùy chọn StarterGui:SetCore() "AvatarContextMenuEnabled" trong một LocalScript. ACM thường được sử dụng tốt nhất trong các trò chơi không có hành vi được định nghĩa trước cho việc nhấn vào người dùng khác.

Sử dụng mẫu mã sau để bật ACM trong một LocalScript:


-- Chạy trong LocalScript, tốt nhất là trong "StarterPlayerScripts"
local StarterGui = game:GetService("StarterGui")
StarterGui:SetCore("AvatarContextMenuEnabled", true)

Nếu bạn cần phát hiện xem ACM có được bật hay không, bạn có thể sử dụng mã sau để trả về một giá trị boolean về trạng thái hiện tại của ACM:


---Trả về một giá trị boolean cho biết liệu ACM có đang được bật hay không.
StarterGui:GetCore(AvatarContextMenuEnabled)

Mở và đóng ACM

Sau khi được bật, bạn có thể mở và đóng ACM một cách chương trình bằng StarterGui.

Để mở ACM một cách chương trình, sử dụng mã sau:


-- Sử dụng StarterGui:SetCore với targetPlayer là một đối tượng Player hợp lệ
StarterGui:SetCore("AvatarContextMenuTarget", targetPlayer)

Để đóng ACM một cách chương trình, sử dụng mã sau:


StarterGui:SetCore("AvatarContextMenuTarget", nil)

Tùy chọn menu

Bạn có thể thêmxóa các hành động thông qua mã hóa. Mặc định, menu có các tùy chọn sau:

Tùy chọn menuMô tả
Kết bạnGửi yêu cầu kết bạn đến người dùng được chọn.
Trò chuyệnMở một cuộc trò chuyện riêng tư với người dùng được chọn trong trò chuyện trong trò chơi.
XemMở một cửa sổ để kiểm tra diện mạo của người dùng đã chọn.
Vẫy tayBắt đầu một hoạt ảnh vẫy tay đến người dùng đã chọn.

Khi ACM đã mở, người dùng có thể cuộn và chọn các người dùng khác trên carousel lựa chọn nhân vật. Nhân vật được sắp xếp dựa trên khoảng cách đến nhân vật được chọn. Menu chỉ cập nhật khi được mở và danh sách người dùng khả dụng sẽ lặp lại khi cuộn.

Thêm tùy chọn menu

Khi được bật, các hành động cụ thể của trò chơi có thể được thêm vào ACM. Ví dụ, một trò chơi có thể cho phép yêu cầu giao dịch, thêm tùy chọn vào nhóm, hoặc các tương tác đặc biệt khác.

Ví dụ sau đây cho thấy cách thêm một hành động tùy chỉnh vào Menu Ngữ Cảnh Avata:


local Players = game:GetService("Players")
local StarterGui = game:GetService("StarterGui")
local player = Players.LocalPlayer
-- Kết nối một hàm với một "BindableEvent"
local bindableEvent = Instance.new("BindableEvent")
local function onCustomACMAction(targetPlayer)
-- Tại thời điểm này, bạn có thể gọi InvokeServer() trên một RemoteFunction để thông báo cho máy chủ về việc chọn lựa
print("Sự kiện ACM được chọn bởi " .. player.Name .. " trên " .. targetPlayer.Name)
end
bindableEvent.Event:Connect(onCustomACMAction)
-- Thêm tùy chọn ACM bằng cách sử dụng SetCore() với "AddAvatarContextMenuOption"
local options = {"Hành động ACM tùy chỉnh", bindableEvent}
StarterGui:SetCore("AddAvatarContextMenuOption", options)

Xóa tùy chọn menu

Bạn có thể xóa các tùy chọn tùy chỉnh và tùy chọn mặc định Kết bạn, Trò chuyện, Xem, và Vẫy tay khỏi ACM bằng cách tham chiếu đến tên Hành động tùy chỉnh hoặc enum Enum.AvatarContextMenuOption mặc định.

Sử dụng mã sau để xóa một tùy chọn menu mặc định và tùy chỉnh:


-- Xóa tùy chọn "Hành động ACM tùy chỉnh"
StarterGui:SetCore("RemoveAvatarContextMenuOption", "Hành động ACM tùy chỉnh")
-- Xóa tùy chọn mặc định "Kết bạn" bằng cách tham chiếu đến Enum AvatarContextMenuOption.Friend
StarterGui:SetCore("RemoveAvatarContextMenuOption", Enum.AvatarContextMenuOption.Friend)

Tùy chỉnh giao diện menu

Để thay đổi giao diện của Menu Ngữ Cảnh Avata, gọi StarterGui:SetCore() với tùy chọn "AvatarContextMenuTheme", cung cấp một bảng các tham số và giá trị để điều chỉnh giao diện menu.

Giao diện người dùng ACM bao gồm các phần sau:

A. Nhãn tên: Tên của người dùng có nhân vật đang được tương tác.

B. Khung nút: Chứa tất cả các nút của ACM.

C. Nút: Nút riêng cho các hành động ACM mặc định hoặc tùy chỉnh.

Tham số giao diện

Đây là các tham số tùy chỉnh với ACM:

Nền

Màu NềnMột Color3 cho nền tổng thể của ACM (có ích nhất khi không sử dụng hình ảnh nền).
Độ Trong Suốt NềnGiá trị độ trong suốt (0–1) cho nền tổng thể của ACM (có ích nhất khi không sử dụng hình ảnh nền).
Hình ảnh NềnID tài sản hợp lệ của một hình ảnh cho nền của ACM.
Độ Trong Suốt Hình ảnh NềnGiá trị độ trong suốt (0–1) cho hình ảnh nền.
Loại Tỉ Lệ Hình ảnh NềnMột enum Enum.ScaleType cho tỉ lệ hình ảnh nền.
Trung Tâm Cắt Hình ảnh NềnMột Rect xác định trung tâm của một hình ảnh cắt chín khi BackgroundImageScaleType được thiết lập thành Enum.ScaleType.Slice.

Nhãn tên

Màu Nhãn TênMột Color3 cho thanh hiển thị người chơi nào đang được tương tác.
Màu Gạch Dưới TênMột Color3 cho đường kẻ mỏng giữa nhãn tên và các nút hành động.

Khung nút

Màu Khung NútMột Color3 cho phần (khung) chứa các nút hành động.
Độ Trong Suốt Khung NútGiá trị độ trong suốt (0–1) cho phần khung nút.

Nút

Màu NútMột Color3 cho nền của các nút hành động ACM.
Độ Trong Suốt NútGiá trị độ trong suốt (0–1) cho màu nền của các nút hành động.
Màu Nút Khi Di ChuộtMột Color3 cho trạng thái "di chuột" của các nút hành động.
Độ Trong Suốt Nút Khi Di ChuộtGiá trị độ trong suốt (0–1) cho màu "di chuột" của các nút hành động.
Màu Gạch Dưới NútMột Color3 cho đường kẻ mỏng tách biệt mỗi nút hành động.
Hình ảnh NútID tài sản hợp lệ của một hình ảnh cho nền của các nút.
Loại Tỉ Lệ Hình ảnh NútMột enum Enum.ScaleType cho tỉ lệ hình ảnh nút.
Trung Tâm Cắt Hình ảnh NútMột Rect xác định trung tâm của một hình ảnh cắt chín khi ButtonImageScaleType được thiết lập thành Enum.ScaleType.Slice.

Văn bản

FontMột giá trị enum Enum.Font cho nhãn tên và văn bản nút.
Màu Văn BảnMột Color3 cho tất cả văn bản trong ACM.
Tỉ Lệ Văn BảnMột giá trị float để thay đổi kích thước văn bản mặc định của mỗi phần tử.

Hình ảnh khác nhau

Hình ảnh Đóng MenuID tài sản của một hình ảnh cho nút đóng ACM.
Hình ảnh Cuộn TráiID tài sản của một hình ảnh cho nút "cuộn trái" trên carousel.
Hình ảnh Cuộn PhảiID tài sản hợp lệ của một hình ảnh cho nút "cuộn phải" trên carousel.

Nhân vật được chọn

Chỉ Báo Nhân Vật Được ChọnĐối tượng MeshPart nổi trên đầu của một nhân vật để chỉ ra rằng họ đã được chọn.

Kích thước và vị trí

Kích thướcMột UDim2 cho kích thước tổng thể của ACM.
Kích thước Tối ThiểuMột Vector2 xác định kích thước tối thiểu của ACM.
Kích thước Tối ĐaMột Vector2 xác định kích thước tối đa của ACM.
Tỉ Lệ KhíaMột giá trị float xác định tỷ lệ tương đối giữa chiều rộng và chiều cao của ACM.
Điểm NeoĐiểm AnchorPoint của ACM.
Vị Trí Trên Màn HìnhMột UDim2 xác định vị trí trên màn hình của ACM (vị trí mà nó chuyển động đến khi được mở).
Vị Trí Ngoài Màn HìnhMột UDim2 xác định vị trí ngoài màn hình của ACM (vị trí mà nó chuyển động từ/đến khi được mở/đóng).

Ví dụ tùy chỉnh

Mẫu mã sau đây tùy chỉnh chủ đề ACM bằng một số tham số cơ bản:


local StarterGui = game:GetService("StarterGui")
StarterGui:SetCore("AvatarContextMenuTheme", {
BackgroundImage = "",
BackgroundTransparency = 0.5,
BackgroundColor = Color3.fromRGB(111, 145, 242),
NameTagColor = Color3.fromRGB(0, 0, 200),
NameUnderlineColor = Color3.fromRGB(213, 233, 255),
ButtonFrameColor = Color3.fromRGB(15, 24, 65),
ButtonFrameTransparency = 0.2,
ButtonUnderlineColor = Color3.fromRGB(213, 233, 255),
Font = Enum.Font.SciFi
})
©2026 Roblox Corporation. Roblox, logo Roblox và Powering Imagination là các nhãn hiệu đã đăng ký và chưa đăng ký của chúng tôi tại Hoa Kỳ và các quốc gia khác.