虛擬人偶 context 選單

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

虛擬人偶上下文選單 (ACM) 使用戶更容易相互交互。當在體驗中啟用 ACM 時,使用者可以走到另一個使用者的角色並點擊它們以開啟一個小菜單,包含多個預設選項。玩家可以發送好友請邀請、開始私人聊天、查看使用者的個人個人檔案料或波浪。

在體驗中啟用 ACM 之後,您可以以下方式自定義 ACM:

啟用人物上下文選單

虛擬人偶上下文選單必須使用 StarterGui:SetCore() 選項「AvatarContextMenuEnabled」在 LocalScript 中啟用。ACM最好在沒有預定義行為的情況下使用體驗,點擊其他用戶。

使用以下代碼示例來啟用 ACM 在 LocalScript 中:


-- 在本地脚本中運行,理想情況下在「新手玩家腳本」中
local StarterGui = game:GetService("StarterGui")
StarterGui:SetCore("AvatarContextMenuEnabled", true)

如果您需要檢查是否啟用 ACM,可以使用以下代碼來返回 ACM 當前狀態的 boolean:


--返回指示是否啟用 ACM 的 boolean 值。
StarterGui:GetCore(AvatarContextMenuEnabled)

開啟並關閉 ACM

一旦啟用,您可以使用 StarterGui 開啟和關閉 ACM 程序。

若要透過程式開啟 ACM,請使用以下代碼:


-- 使用新手指南:在目標玩家是有效的玩家對象時設置核物件 where targetPlayer is a valid Player object
StarterGui:SetCore("AvatarContextMenuTarget", targetPlayer)

要程式地關閉 ACM,請使用以下代碼:


StarterGui:SetCore("AvatarContextMenuTarget", nil)

選單選項

您可以通過腳本 添加移除 操作。默認情況下,菜單具有以下選項:

選單選項說明
好友向選擇的使用者發送朋友請求。
聊天在體驗聊天中開啟與選擇的用戶私人對話。
查看開啟一個窗口以檢查選擇的使用者的外觀。
向選擇的使用者啟動波動畫。

一旦ACM打開,使用者可以在角色選擇卡片上滾動並選擇其他使用者。角色依選擇的角色距離排序。選單只會在開啟時更新,可用用戶列表會在滾動時重複。

新增選單選項

一旦啟用,經驗特定的行動可以添加到 ACM。例如,體驗可能會允許交易請求、加入派對選項或其他特殊互動。

以下範例顯示如何將自訂行動添加到虛擬人偶上下文選單:


local Players = game:GetService("Players")
local StarterGui = game:GetService("StarterGui")
local player = Players.LocalPlayer
-- 將功能連接到「可綁定事件」
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)
-- 使用「SetCore()」與「AddAvatarContextMenuOption」添加 ACM 選項
local options = {"Custom ACM Action", bindableEvent}
StarterGui:SetCore("AddAvatarContextMenuOption", options)

移除選單選項

您可以從 ACM 中刪除自訂和預設的「新增好友」、「聊天」、「查看」和「揮手」選項,參考自訂行動名稱或預設 Enum.AvatarContextMenuOption 枚列。

使用以下代碼來移除預設和自訂菜單選項:


-- 移除「自訂 ACM 行動」選項
StarterGui:SetCore("RemoveAvatarContextMenuOption", "Custom ACM Action")
-- 通過參考 AvatarContextMenuOption.Friend Enum 來移除預設「朋友」選項
StarterGui:SetCore("RemoveAvatarContextMenuOption", Enum.AvatarContextMenuOption.Friend)

自訂選單外觀

若要變更虛擬人偶上下文選單的外觀,請使用「AvatarContextMenuTheme」選項呼叫 StarterGui:SetCore() ,提供一個包含參數和值的表來調整選單外觀。

ACM 使用者介面包括以下部分:

A. 名稱標籤:與互動的角色名稱。

B. 按鈕框:包含所有的 ACM 按鈕。

C. 按鈕:預設或自訂 ACM 操作的個別按鈕。

外觀參數

這些是使用 ACM 的自訂參數:

背景

背景色對於 ACM 的整體背景的 Color3 (最有用時不使用背景圖像)
背景透明ACM 的整體背景透明值 (0–1) (最有用時不使用背景圖像)。
背景圖像ACM 背景的圖像有效資產 ID。
背景圖像透明度背景圖像的透明度值(0–1)。
背景圖像縮放類型一個 Enum.ScaleType 枚用於背景圖像縮放。
背景圖像片中心當背景圖像縮放類型設為 Rect 時,指定九片圖像的中心時 Enum.ScaleType.Slice

名稱標籤

名稱標籤顏色一個 Color3 用於顯示哪個玩家正在互動。
名稱下線色彩對於名稱標籤和行動按鈕之間的薄線,A Color3

按鈕框

按鈕框色包含行動按鈕的部分(框)的 Color3
按鈕框透明度按鈕框部分的透明值(0–1)。

按鈕

按鈕顏色對於 ACM 行動按鈕的背景的 Color3
按鈕透明度行動按鈕背景顏色的透明值(0–1)。
按鈕漂浮顏色對行動按鈕的「懸浮訊息」狀態的 Color3
按鈕漂浮透明度行動按鈕「懸浮訊息」顏色的透明值(0–1)。
按鈕底線顏色一個 Color3 用於分開每個行動按鈕的薄線。
按鈕圖像按鈕背景的圖像有效資產ID。
按鈕圖像縮放類型按鈕圖像縮放的 Enum.ScaleType
按鈕圖像片段中心當按鈕圖像縮放類型設為 Rect 時,指定九片圖像中心時的 Enum.ScaleType.Slice 參數。

文字

字體名稱標籤和按鈕文字的 Enum.Font
文字顏色對於 ACM 內的所有文字的 Color3
文字縮放一個浮點值,用於擴展每個元素的預設文字尺寸。

各種圖像

離開選單圖像ACM 關閉按鈕的圖像 ID。
滾動左圖像旋轉「向左滾動」按鈕的圖像資產ID。
滾動右圖像輪盤「向右滾動」按鈕的有效資產 ID 圖像。

已選擇的角色

已選擇的角色指示器漂浮在字元頭上的 MeshPart ,用於表示已選擇。

大小和位置

尺寸對 ACM 的整體尺寸的 UDim2
最小尺寸一個 Vector2 指定 ACM 的最小尺寸。
最大尺寸一個 Vector2 指定 ACM 的最大尺寸。
比例率一個浮點值,指定 ACM 的相對寬度和高度。
錨點ACM 的 AnchorPoint
在畫面位置UDim2 指定 ACM 的屏幕位置(打開時它會調整到的位置)
關閉屏幕位置A UDim2 指定 ACM 的關閉屏幕位置(打開/關閉時從/到的位置)。

範例自訂

以下代碼示例使用一些基本參數自定義 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
})