虛擬人偶上下文菜單

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡

虛擬人偶上下文菜單 (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 時的中心。

名稱標籤

名稱標籤顏色一個 Color3 為條狀顯示哪一個玩家與哪一個玩家互動。
名稱標籤顏色一個 Color3 用於名稱標籤和動作按鈕之間的細線。

按鈕框架

按鈕框色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
})