Các Avatar Context Menu (ACM) dễ dàng hơn cho người dùng để tương tác với nhau. Khi ACM được bật trong trải nghiệm của bạn, một người dùng có thể đi bộ lên một yêu cầu kết bạnvật của người dùng khác và nhấp vào họ để mở một menu n
Sau khi bạn bật ACM trong kinh nghiệm của bạn, bạn có thể tùy chỉnh ACM theo các cách sau đây:
- Lập trình mở và đóng ACM cho các người dùng cụ thể.
- Tùy chỉnh ngoại hình ACM để tạo một giao diện người dùng độc đáo.
Kích Hoạt Trình Bố Trí Nhân Vật
Trình quản lý Avatar phải được kích hoạt bằng cách sử dụng tùy chọn StarterGui:SetCore() "AvatarContextMenuEnabled" trong một LocalScript . Theo mặc định, ACM tốt nhất được sử dụng trong các trải nghiệm không có hành vi được quản lý trước đó cho người nhấ
Sử dụng mẫu mã code sau đây để bật ACM trong một LocalScript :
-- Chạy trong một LocalScript, tốt nhất trong "StarterPlayerScripts"local StarterGui = game:GetService("StarterGui")StarterGui:SetCore("AvatarContextMenuEnabled", true)
Nếu bạn cần phải kiểm tra xem ACM đã được kích hoạt, bạn có thể sử dụng mã sau đây để trả lại mộtBoolean trên trạng thái hiện tại của ACM:
--Trả lại mộtBoolean cho biết có phải bây giờ ACM được kích hoạt không.StarterGui:GetCore(AvatarContextMenuEnabled)
Mở và Đóng ACM
Một khi bật, bạn có thể mở và đóng chương trình ACM bằng cách sử dụng StarterGui .
Để mở ACM bằng cách lập trình, hãy sử dụng mã sau đây:
-- Sử dụng StarterGui:SetCore nơi mục tiêuPlayer là một đối tượng người chơi hợp lệStarterGui:SetCore("AvatarContextMenuTarget", targetPlayer)
Để đóng ACM theo cách chương trình, hãy sử dụng mã sau đây:
StarterGui:SetCore("AvatarContextMenuTarget", nil)
Tùy chọn menu
Bạn có thể thêm và loại bỏ hành động qua việc lập trình. Bởi mặc định, menu có các tùy chọn sau:
Tùy chọn menu | Mô tả |
---|---|
Bạn bè | Gửi một yêu cầu bạn bè đến người dùng được chọn. |
Trò chuyện | Mở một cuộc hội thoại riêng tư với người dùng được chọn trong trò chuyện trong kinh nghiệm. |
Lượt xem | Mở một cửa sổ để kiểm tra ngoại hình người dùng được chọn. |
Sóng | Khởi tạo một hoạt họa sóng cho người dùng được chọn. |
Một khi ACM được mở, người dùng có thể cuộn dây và chọn người dùng khác trên các lựa chọn nhân vật. Các 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 cập nhật khi mở và danh sách người dùng có thể lặp lại khi cuộn dây.
Thêm các tùy chọn menu
Một khi bật, các hành động riêng 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 khác.
Các ví dụ sau đây cho thấy cách thêm một hành động tùy chỉnh vào Avatar Context Menu:
local Players = game:GetService("Players")
local StarterGui = game:GetService("StarterGui")
local player = Players.LocalPlayer
-- Kết hợp chức năng với "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 hàm tĩnh để cảnh báo máy chủ 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ể loại bỏ các tùy chọn bên trong và bên ngoài của Add Friend, Trò chuyện, View và Wave từ ACM bằng cách tham khảo tên hành động tùy chỉnh hoặc thư mục tiêu của mặt đầu tiên.
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 "Bạn bè" mặc định bằng cách tham khảo AvatarContextMenuOption.Friend EnumStarterGui:SetCore("RemoveAvatarContextMenuOption", Enum.AvatarContextMenuOption.Friend)
Tùy chỉnh nhAppearance Menu
Để thay đổi nhìn nền của Avatar Context Menu, call StarterGui:SetCore() với tùy chọn "AvatarContextMenuTheme", cung cấp một table of parameters và giá trị để điều chỉnh hiển thị menu.
Giao diện người dùng ACM bao gồm các mục sau:
A. Tên người chơi: Tên người chơi đang tương tác với.
B. Khung nút: Bao gồm tất cả các nút ACM.
C. Các nút: Các nút cá nhân cho các hành động ACM mặc định hoặc tùy chỉnh.
Cài đặt ngoại hình
Đây là các tham số tùy chỉnh với ACM:
Hình nền
Màu sắc nền | Một Color3 cho toàn bộ nền tảng của ACM (hữu ích nhất khi không sử dụng hình ảnh nền). |
Độ trong suốt hậu cầu | Giá trị độ trong suốt (0-1) cho hình nền chung của ACM (hữu ích nhất khi không sử dụng hình ảnh nền). |
Hình ảnh nền | Một ID hợp lệ của hình ảnh cho hình nền ACM. |
Bản chất nền | Giá trị độ trong suốt (0-1) cho hình ảnh nền. |
Kích thước hình ảnh nền | Một Enum.ScaleType 열 danh sách cho việc thiết lập kích thước hình ảnh nền. |
Bản chỉnh sửa hình ảnh nền | Một Rect specifying the center of a nine-Slice image when BackgroundImageScaleType được set to Enum.ScaleType.Slice . |
Thẻ tên
Màu nhãn tên | Một Color3 cho thanh hiển thị người chơi đang tương tác với. |
Màu mũi tên tên | Một Color3 cho dòng mỏng giữa thẻ tên và nút hành động. |
Khung nút
Màu nút | Một Color3 cho phần (khung) chứa các nút hành động. |
Transparency của nút | Giá trị độ trong suốt (0-1) cho phần khung nút. |
Nút
Màu nút | Một Color3 cho phần nền của các nút hành động ACM. |
Độ trong suốt của nút | Giá trị độ trong suốt (0-1) cho màu nền của nút hành động. |
MàuHover | Một Color3 cho trạng thái " hover "của các nút hành động. |
Độ trong suốt của nút | Giá trị độ trong suốt (0-1) cho màu " hover " của nút hành động. |
Màu Đường Ray | Một Color3 cho dòng mỏng qui tách mỗi nút hành động. |
Hình ảnh nút | Một ID hợp lệ của hình ảnh cho phông nền của các nút. |
Kích thước hình ảnh nút | Một Enum.ScaleType 枚 cho việc thiết lập kích thước nút. |
Trung tâm hình ảnh nút | Một Rect specifying the center of a nine-Slice image when ButtonImageScaleType được set to Enum.ScaleType.Slice . |
Văn bản
Chữ | Một giá trị Enum.Font cho danh nhã và văn bản nút. |
Màu chữ | Một Color3 cho tất cả văn bản trong ACM. |
Thước đo chữ | Một giá trị float để thay đổi kích thước chữ mặc định của mỗi thành phần. |
Hình ảnh đa dạng
Rời khỏi hình ảnh menu | Một ID hình ảnh của một hình ảnh cho nút đóng gần ACM. |
Hình ảnh ScrollLeft | Một ID hình ảnh của một hình ảnh cho nút "cuộn dây trái" trên các thiết bị di động. |
Hình ảnh ScrollRight | Một ID hợp lệ của hình ảnh cho nút "cuộn dây phải" trên các bản diễn. |
Nhân vật được chọn
Chỉnh sửa nhân vật được chọn | Class.MeshPart nằm trên đầu của một nhân vật để cho biết họ đã được chọn. |
Kích thước và vị trí
Kích thước | Một UDim2 cho kích thước tổng thể của ACM. |
Kích thước tối thiểu | Một Vector2 định kích thước tối thiểu của ACM. |
Kích thước tối đa | Một Vector2 quy định kích thước tối đa của ACM. |
Tỷ lệ kích thước | Một giá trị float định mối quan hệ chiều rộng và chiều cao của ACM. |
Điểm Anchor | The AnchorPoint of the ACM. |
Vị trí màn hình | Một UDim2 specifying the on-screen position of the ACM (the position where it tweens to when opened). |
OffScreen | Một UDim2 specifying the off-screen position of the ACM (the position where it tweens from/to when opened/closed). |
Tùy chỉnh ví dụ
Các ví dụ mã sau đây tùy chỉnh chủ đề ACM bằng một số biến 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})