虛擬人偶上下文菜單 (ACM) 使用戶用戶間互動更加容易。當ACM在您的體驗啟用時,用戶可以走到其他用戶的角色旁邊並點擊他們來開啟小菜單。玩家可以發送朋友請邀請、開始私人聊天、檢視用戶的個人個人檔案料或波。
在啟用 ACM 後 在您的體驗中,您可以自訂 ACM 以下方式:
啟用虛擬人偶上下文菜單
虛擬人偶上下文菜單必須啟用使用 StarterGui:SetCore() 選項 "AvatarContextMenuEnabled" 在 LocalScript 中。 虛擬人偶最佳用於在沒有預設行為為點擊其他用戶的情況下。
使用以下代碼示例啟用 ACM 在 LocalScript :
-- 執行在本地指令碼中,通常在 "StarterPlayerScripts" 內local StarterGui = game:GetService("StarterGui")StarterGui:SetCore("AvatarContextMenuEnabled", true)
如果您需要檢查是否啟用 ACM,您可以使用以下代碼來返回 ACM 當前狀態的Boolean:
--返回是否表示 ACM 目前啟用。StarterGui:GetCore(AvatarContextMenuEnabled)
開啟和關閉 ACM
啟用後,您可以使用 StarterGui 程式式開啟和關閉 ACM 程式。
要程式開啟 ACM,請使用以下代碼:
-- 使用 StarterGui:SetCore 將 targetPlayer 設定為有效的玩家對物件StarterGui:SetCore("AvatarContextMenuTarget", targetPlayer)
要程式性關閉 ACM,請使用以下代碼:
StarterGui:SetCore("AvatarContextMenuTarget", nil)
選單選項
您可以通過 添加 和 移除 指令來添加或移除指令。 預設值為:
選單選項 | 說明 |
---|---|
朋友 | 向選定的用戶發送朋友請求。 |
聊天 | 開啟私人聊天視窗,與選定的使用者聊天。 |
查看 | 開啟一個窗口來檢視選取的用戶的外觀。 |
回合 | 啟動選擇的用戶的波動動畫。 |
一旦 ACM 開啟,使用者可以向下捲動並選擇其他使用者在角色選擇車ousel。角色按照距離到選擇角色排序。菜單只會在開啟時更新,並且清單的可用用戶將重複在捲動時。
新增選單項目
啟用時,可以在 ACM 中添加專案特定的行動。例如,有些專案可以允許交易請求、添加至隊伍選項或其他特殊互動。
下面的範例顯示了如何在虛擬人偶上下文菜單中添加自訂動作:
local Players = game:GetService("Players")
local StarterGui = game:GetService("StarterGui")
local player = Players.LocalPlayer
-- 連接一個函數到 "BindableEvent"
local bindableEvent = Instance.new("BindableEvent")
local function onCustomACMAction(targetPlayer)
-- 此時,您可以在遠端函數上呼叫 InvokeServer() 來警告服務器的選擇
print("ACM event selected by " .. player.Name .. " on " .. targetPlayer.Name)
end
bindableEvent.Event:Connect(onCustomACMAction)
-- 使用 "AddAvatarContextMenuOption" 使用 SetCore 增加 ACM 選項
local options = {"Custom ACM Action", bindableEvent}
StarterGui:SetCore("AddAvatarContextMenuOption", options)
移除選單選項
您可以從 ACM 中移除自訂和預設的「新增好友」、「聊天」、「查看」和「波浪」選項,並且參考自訂「Enum.AvatarContextMenuOption」名稱或預設「 :`Enums.AvatarContextMenuOption `Enums.AvatarContextMenuOption」枚。
使用以下代碼移除預設和自訂選單項目:
-- 移除「自訂 ACM 動作」選項StarterGui:SetCore("RemoveAvatarContextMenuOption", "Custom ACM Action")-- 參考 AvatarContextMenuOption.Friend 枚列,移除預設 "朋友" 選項StarterGui:SetCore("RemoveAvatarContextMenuOption", Enum.AvatarContextMenuOption.Friend)
自訂選單外觀
要變更虛擬人偶上下文菜單的外觀,請使用 StarterGui:SetCore() 並且在選項中提供「AvatarContextMenuTheme」,提供一個表參數和值來調整菜單外觀。
ACM 使用者介面包括以下部分:
A. 名稱標籤:與角色互動的玩家名稱。
B. 按鈕框架:包含所有 ACM 按鈕。
C. 按鈕:個別按鈕以啟動預設或自訂 ACM 動作。
外觀參數
這些是 ACM 的自訂參數:
背景
背景顏色 | 一個 Color3 為 ACM 的整體背景。(最有用的時候不使用背景圖像) |
背景透明度 | ACM 的總背景值 (0-1) (最常用於不使用背景圖像)。 |
背景圖像 | 一個有效的圖像資產 ID 的背景。 |
背景圖像透明度 | 背景圖像的透明度(0-1)值。 |
背景圖像規模 | 一個 Enum.ScaleType 枚芯片對背景圖像進行擴展的庫。 |
背景圖像片中心 | A Rect 指定背景圖像大小為 Enum.ScaleType.Slice 時的中心。 |
名稱標籤
按鈕框架
按鈕框色 | A Color3 為區域 (框架) 含有行動按鈕的區域。 |
按鈕框透明度 | 按鈕框部分的透明值 (0-1)。 |
按鈕
按鈕顏色 | 一個 Color3 為 ACM 動作按鈕的背景。 |
按鈕透明度 | 行動按鈕的背景顏色(0-1)。 |
按鈕懸停顏色 | Datatype.Color3 為狀態按鈕的「 hove懸浮訊息」狀態。 |
按鈕暫停透明度 | 動作按鈕的 " hove懸浮訊息 "值 (0-1)。 |
按鈕縫線顏色 | Datatype.Color3 用於分離每個行動按鈕的細線。 |
按鈕圖像 | 一個有效的圖像資產,用於按鈕的背景。 |
按鈕圖像縮放類型 | Entity.ScaleType 枚按鈕圖像擴大/縮小器。 |
按鈕圖像切中心 | Datatype.Rect 指定按鈕圖像大小為 Enum.ScaleType.Slice 時的中心。 |
文字
字體 | 枚號 值 對名稱標籤和按鈕文字的描述。 |
文字顏色 | ACM 內的所有文字。 |
文字大小 | 一個漂浮值,可以調整每個元素的預設文字大小。 |
各種圖像
離開菜單圖像 | ACM 關閉按鈕的圖像資產 ID。 |
捲動左圖像 | 車輪 "向左捲動" 按鈕的圖像 ID。 |
捲動右圖像 | 一張車輪 "滚動右" 按鈕的圖像的有效資產 ID。 |
已選擇的角色
選擇角色指示器 | 漂浮在角色頭上的 MeshPart ,表示他們已選取。 |
大小和位置
大小 | 一個 UDim2 對 ACM 的整體尺寸。 |
最小尺寸 | 一個 Vector2 指定 ACM 的最小尺寸。 |
最大尺寸 | 一個 Vector2 指定 ACM 的最大尺寸。 |
相對比例 | 一個漂浮值,指定 ACM 的相對寬度和高度。 |
錨定點 | ACM 的 AnchorPoint。 |
在屏幕上的位置 | A UDim2 指定電腦扇型位置,當開啟時會變更位置。 |
關閉屏幕位置 | A UDim2 指定 ACM 的 off-screen 位置 (當打開/關閉時從/到位置)。 |
舉例自訂
下列代碼示例使用一些基本參數自訂 ACM 主題:
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})