角色上下文選單

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

角色上下文選單 (ACM) 使得使用者互相之間的互動變得更容易。當 ACM 在你的遊戲中啟用時,用戶可以走到其他用戶的角色旁邊,然後單擊他們以打開一個包含幾個預設選項的小菜單。玩家可以發送好友請求、開始私人聊天、查看用戶資料,或揮手。

啟用 ACM 之後,你可以通過以下方式自定義 ACM:

啟用角色上下文選單

角色上下文選單必須使用 StarterGui:SetCore() 參數 "AvatarContextMenuEnabled" 在 LocalScript 中啟用。ACM 最適合在沒有預定義行為的遊戲中使用,如點擊其他用戶。

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


-- 在 LocalScript 中運行,理想情況下放在 "StarterPlayerScripts" 中
local StarterGui = game:GetService("StarterGui")
StarterGui:SetCore("AvatarContextMenuEnabled", true)

如果你需要檢測 ACM 是否已啟用,你可以使用以下代碼返回 ACM 當前狀態的布林值:


--- 返回一個布林值,指示 ACM 當前是否啟用。
StarterGui:GetCore(AvatarContextMenuEnabled)

打開和關閉 ACM

一旦啟用,你可以通過 StarterGui 程式化地打開和關閉 ACM。

要程式化地打開 ACM,使用以下代碼:


-- 使用 StarterGui:SetCore,其中 targetPlayer 是有效的 Player 對象
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
-- 連接一個功能到 "BindableEvent"
local bindableEvent = Instance.new("BindableEvent")
local function onCustomACMAction(targetPlayer)
-- 此時,你可以調用 RemoteFunction 的 InvokeServer() 以通知伺服器的選擇
print("ACM 事件由 " .. player.Name .. " 在 " .. targetPlayer.Name .. " 上選擇")
end
bindableEvent.Event:Connect(onCustomACMAction)
-- 使用 SetCore() 和 "AddAvatarContextMenuOption" 添加 ACM 選項
local options = {"自定義 ACM 動作", bindableEvent}
StarterGui:SetCore("AddAvatarContextMenuOption", options)

移除菜單選項

你可以通過引用自定義動作名稱或默認的 Enum.AvatarContextMenuOption 列舉來移除自定義和默認的添加好友、聊天、查看和揮手選項。

使用以下代碼來移除默認和自定義菜單選項:


-- 移除 "自定義 ACM 動作" 選項
StarterGui:SetCore("RemoveAvatarContextMenuOption", "自定義 ACM 動作")
-- 參考 AvatarContextMenuOption.Friend 枚舉移除默認的 "好友" 選項
StarterGui:SetCore("RemoveAvatarContextMenuOption", Enum.AvatarContextMenuOption.Friend)

自定義菜單外觀

要更改角色上下文選單的外觀,調用 StarterGui:SetCore() 和選項 "AvatarContextMenuTheme",提供一個參數和數值的表來調整菜單的外觀。

ACM 用戶介面包括以下部分:

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

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

C. 按鈕:默認或自定義 ACM 動作的單個按鈕。

外觀參數

這些是 ACM 的自定義參數:

背景

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

名稱標籤

名稱標籤顏色顯示正在互動的玩家的條的 Color3
名稱下劃線顏色名稱標籤和動作按鈕之間的細線的 Color3

按鈕框架

按鈕框架顏色包含動作按鈕的區域(框架)的 Color3
按鈕框架透明度按鈕框架部分的透明度值 (0–1)。

按鈕

按鈕顏色ACM 動作按鈕背景的 Color3
按鈕透明度動作按鈕的背景顏色的透明度值 (0–1)。
按鈕懸停顏色動作按鈕的 "懸停" 狀態的 Color3
按鈕懸停透明度動作按鈕的 "懸停" 顏色的透明度值 (0–1)。
按鈕下劃線顏色分隔每個動作按鈕的細線的 Color3
按鈕圖像按鈕背景圖像的有效資源 ID。
按鈕圖像縮放類型按鈕圖像縮放的 Enum.ScaleType 列舉。
按鈕圖像切片中心當按鈕圖像縮放類型設置為 Enum.ScaleType.Slice 時,指定九切片圖像中心的一個 Rect

文本

字體名稱標籤和按鈕文本的 Enum.Font 列舉值。
文本顏色ACM 中所有文本的 Color3
文本縮放用來調整每個元素的默認文本大小的浮點值。

各種圖像

離開菜單圖像ACM 關閉按鈕的資源 ID。
向左滾動圖像旋轉木馬 "向左滾動" 按鈕的資源 ID。
向右滾動圖像旋轉木馬 "向右滾動" 按鈕的有效資源 ID。

選定角色

選定角色指示器懸浮在角色頭頂的一個 MeshPart,用於指示他們被選中。

大小和位置

大小ACM 的總體大小的 UDim2
最小大小指定 ACM 的最小大小的 Vector2
最大大小指定 ACM 的最大大小的 Vector2
寬高比指定 ACM 相對寬度和高度的浮點值。
錨點ACM 的 AnchorPoint
螢幕內位置指定 ACM 在螢幕上的位置的 UDim2 (當打開時的過渡位置)。
螢幕外位置指定 ACM 在螢幕外的位置的 UDim2 (當開啟/關閉時的過渡位置)。

範例自定義

以下代碼範例使用一些基本參數自定義 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
})
©2026 Roblox Corporation、Roblox、Roblox 標誌及 Powering Imagination 是我們在美國及其他國家地區的部分註冊與未註冊商標。