Menu ngữ cảnh Avatar

*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 Avatar (ACM) làm cho việc tương tác của người dùng với nhau dễ dàng hơn.Khi ACM được bật trong trải nghiệm của bạn, một người dùng có thể đi đến nhân vật của người dùng khác và nhấp vào họ để mở một menu nhỏ với một số lựa chọn mặc định.Người chơi có thể gửi yêu cầu kết bạn, bắt đầu một cuộc trò chuyện riêng tư, xem hồ sơ của người dùng hoặc làn sóng.

Sau khi bật ACM trong trải nghiệm của bạn, bạn có thể tùy chỉnh ACM theo các cách sau:

Bật menu ngữ cảnh Avatar

Menu ngữ cảnh Avatar phải được bật mở bằng cách sử dụng tùy chọn StarterGui:SetCore() "AvatarContextMenuEnabled" trong LocalScript .ACM tốt nhất được sử dụng trong các trải nghiệm không có hành vi được xác định trước để nhấp vào người dùng khác.

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


-- Chạy trong một LocalScript, lý tưởng 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 đây để trả về một boolean về tình trạng hiện tại của ACM:


--Trả về một boolean chỉ ra nếu ACM hiện đang được bật.
StarterGui:GetCore(AvatarContextMenuEnabled)

Mở và đóng ACM

Một khi được bật, bạn có thể mở và đóng chương trình ACM theo cách thủ công với StarterGui .

Để mở ACM theo cách lập trình, sử dụng mã sau:


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

Để đóng ACM theo cách lập trình, sử dụng mã sau:


StarterGui:SetCore("AvatarContextMenuTarget", nil)

Tùy chọn menu

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

Tùy chọn menuMô tả
Bạn bèGửi yêu cầu bạn bè cho 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 kinh nghiệm.
XemMở một cửa sổ để kiểm tra trang ngoại hìnhcủa người dùng được chọn.
SóngKhởi động một hoạt hình làn sóng cho người dùng được chọn.

Khi ACM được mở, người dùng có thể cuộn và chọn các người dùng khác trên bảng lựa chọn nhân vật.Các ký tự được sắp xếp theo khoảng cách đến ký tự được chọn.Thực đơn chỉ được cập nhật khi mở và danh sách các người dùng có sẵn sẽ lặp lại khi cuộn.

Thêm lựa chọn menu

Một khi được bật, các hành động cụ thể cho trải nghiệm có thể được thêm vào ACM.Ví dụ, một trải nghiệm có thể cho phép yêu cầu giao dịch, tùy chọn tham gia 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 Avatar:


local Players = game:GetService("Players")
local StarterGui = game:GetService("StarterGui")
local player = Players.LocalPlayer
-- Kết nối chức năng 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 để cảnh báo máy chủ về lựa chọn
print("ACM event selected by " .. player.Name .. " on " .. 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 = {"Custom ACM Action", bindableEvent}
StarterGui:SetCore("AddAvatarContextMenuOption", options)

Loại bỏ lựa chọn menu

Bạn có thể xóa các tùy chọn tùy chỉnh và mặc định Thêm bạn bè, Trò chuyện, Xem và Sóng từ ACM bằng cách tham chiếu tên hành động tùy chỉnh hoặc enum mặc định Enum.AvatarContextMenuOption.

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


-- Loại bỏ tùy chọn "Hành động ACM tùy chỉnh"
StarterGui:SetCore("RemoveAvatarContextMenuOption", "Custom ACM Action")
-- Loại bỏ tùy chọn mặc định "Bạn bè" bằng cách tham chiếu đến AvatarContextMenuOption.Friend Enum
StarterGui:SetCore("RemoveAvatarContextMenuOption", Enum.AvatarContextMenuOption.Friend)

Tùy chỉnh trang hiển thị menu

Để thay đổi trang phục của menu ngữ cảnh Avatar, 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 trang ngoại hìnhcủa menu.

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

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

B. Khung nút: Bao gồm tất cả các nút 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ố ngoại hình

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

Nền

Màu nềnA Color3 cho toàn bộ nền của ACM (hữu ích nhất khi không sử dụng hình nền nền).
Bảng nền minh bạchGiá trị minh bạch (0–1) cho toàn bộ nền của ACM (hữu ích nhất khi không sử dụng hình nền nền).
Hình ảnh nềnMột ID tài sản hợp lệ của hình ảnh cho nền ACM.
Hình ảnh nền trong suốtGiá trị minh bạch (0–1) cho hình nền.
Loại BackgroundImageScaleMột enum Enum.ScaleType cho kích thước hình ảnh nền.
Trung tâm ảnh nềnMột Rect xác định trung tâm của hình ảnh chia chính khi BackgroundImageScaleType được đặt thành Enum.ScaleType.Slice .

Thẻ tên

Màu thẻ tênA Color3 cho thanh hiển thị người chơi đang tương tác.
TênUnderlineMàuA Color3 cho dòng mỏng giữa thẻ tên và nút hành động.

Khung nút

Màu khung nútA Color3 cho phần (khung) chứa các nút hành động.
Khung trong suốt nútGiá trị minh bạch (0–1) cho phần khung nút.

Cái nút

Màu nútA Color3 cho nền của các nút hành động ACM.
Nút minh bạchGiá trị minh bạch (0–1) cho màu nền của nút hành động.
Màu di chuột nútA Color3 cho trạng thái "ho버" của các nút hành động.
ButtonHoverTransparency (Nhạy bén)Giá trị minh bạch (0–1) cho màu "hovers" của các nút hành động.
Màu Nổi Bật NútA Color3 cho dòng mỏng chia cắt mỗi nút hành động.
Hình ảnh nútMột ID tài sản hợp lệ của hình ảnh cho nền của nút.
Loại tỷ lệ hình ảnh nútMột enum Enum.ScaleType cho việc thay đổi kích thước hình ảnh nút.
Trung tâm hình ảnh nút ImageSliceMột Rect xác định trung tâm của hình ảnh chia chính khi ButtonImageScaleType được đặt thành Enum.ScaleType.Slice .

Văn bản

Phông chữMột giá trị enum cho thẻ tên và văn bản nút Enum.Font
Màu văn bảnA Color3 cho tất cả các văn bản bên trong ACM.
Tỉ lệ văn bảnMột giá trị nổi để tăng kích thước văn bản mặc định của mỗi thành phần.

Nhiều hình ảnh

Hình ảnh menu rờiMột ID tài sản của hình ảnh cho nút đóng ACM.
Hình ảnh cuộn sang tráiMột ID tài sản của hình ảnh cho nút "cuộn sang trái" của vòng lặp.
Hình ảnh cuộn phảiMột ID tài sản hợp lệ của một hình ảnh cho nút "cuộn sang phải" của bảng trưng bày.

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

Chỉ số nhân vật được chọnCác MeshPart mà nổi trên đầu của một nhân vật để chỉ ra rằng chúng được chọn.

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

Kích thướcA UDim2 cho tổng kích thước của ACM.
Kích thước tối thiểuMột Vector2 định cấu hình kích thước tối thiểu của ACM.
Kích thước tối đaMột Vector2 đặc trưng kích thước tối đa của ACM.
Tỷ lệ khía cạnhMột giá trị nổi xác định chiều rộng và chiều cao tương đối của ACM.
Điểm neoThe AnchorPoint của ACM.
Vị trí trên màn hìnhMột UDim2 đặc trưng vị trí trên màn hình của ACM (vị trí mà nó tweens khi mở).
Vị trí màn hình tắtMột UDim2 đặc trưng vị trí ngoài màn hình của ACM (vị trí mà nó tweens từ / đến khi mở / đóng).

Ví dụ tùy chỉnh

Ví dụ 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
})