虚拟形象上下文菜单

*此内容使用人工智能(Beta)翻译,可能包含错误。若要查看英文页面,请点按 此处

虚拟形象上下文菜单(ACM)使用户更容易相互交流。当在体验中启用 ACM 时,用户可以走到另一个用户的角色那里,点击他们打开一个小菜单,包含几个默认选项。玩家可以发送好友请求、开始私人聊天、查看用户的个人资料或波浪。

在启用ACM之后,您可以通过以下方式自定义ACM:

启用虚拟形象上下文菜单

虚拟形象上下文菜单必须使用 StarterGui:SetCore() 选项“AvatarContextMenuEnabled”在 LocalScript 中启用。ACM最好用于那些没有预定义行为的体验,以便单击其他用户。

使用以下代码示例来启用 ACM 在 LocalScript :


-- 在本地脚本中运行,最好在 "StarterPlayerScripts" 中
local StarterGui = game:GetService("StarterGui")
StarterGui:SetCore("AvatarContextMenuEnabled", true)

如果您需要检查是否启用 ACM,您可以使用以下代码返回 ACM 当前状态的 boolean:


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

打开并关闭 ACM

一旦启用,您可以使用 StarterGui 程序化打开和关闭 ACM 程序。

要通过编程打开 ACM,请使用以下验证码:


-- 使用启动器GUI:在目标玩家是一个有效的玩家对象时设置核心
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 event selected by " .. player.Name .. " on " .. targetPlayer.Name)
end
bindableEvent.Event:Connect(onCustomACMAction)
-- 使用 SetCore() 添加 ACM 选项,并使用 "AddAvatarContextMenuOption"
local options = {"Custom ACM Action", bindableEvent}
StarterGui:SetCore("AddAvatarContextMenuOption", options)

移除菜单选项

您可以通过参考自定义行动名称或默认 Enum.AvatarContextMenuOption 枚列来从 ACM 中删除自定义和默认的“添加好友、聊天、查看和波浪”选项。

使用以下代码来删除默认菜单选项和自定义菜单选项:


-- 移除“自定义 ACM 行动”选项
StarterGui:SetCore("RemoveAvatarContextMenuOption", "Custom ACM Action")
-- 通过引用 AvatarContextMenuOption.Friend Enum 去掉默认的“朋友”选项
StarterGui:SetCore("RemoveAvatarContextMenuOption", Enum.AvatarContextMenuOption.Friend)

自定义菜单外观

要更改虚拟形象上下文菜单的外观,请调用 StarterGui:SetCore() 并将选项 “AvatarContextMenuTheme” 设置为“AvatarContextMenuTheme”,提供一个包含参数和值的表来调整菜单外观。

ACM用户界面包括以下部分:

A. 名称标签:与互动的角色的用户名。

B. 按钮框:包含所有 ACM 按钮。

C. 按钮:默认或自定义 ACM 操作的单个按钮。

外观参数

这些是与 ACM 配置的自定义参数:

背景

背景颜色一个 Color3 为 ACM 的整体背景(最有用的情况是不使用背景图像时)
背景透明ACM的整体背景透明值(0–1)(最有用时不使用背景图像)。
背景图像ACM 背景的图像的有效资产 ID。
背景图像透明度背景图像的透明度值(0–1)。
背景图像缩放类型一个 Enum.ScaleType 枚列用于背景图像缩放。
背景图像切割中心一个 Rect 指定九层图像中心的特性,当背景图像缩放类型设置为 Enum.ScaleType.Slice 时。

名称标签

名称标签颜色一个 Color3 用于显示哪个玩家正在互动。
名称下划线颜色一个 Color3 为名称标签和行动按钮之间的薄线。

按钮框

按钮框颜色一个 Color3 对于包含行动按钮的部分(框)。
按钮框透明按钮框部分的透明值(0–1)。

按钮

按钮颜色一个 Color3 为 ACM 行动按钮的背景。
按钮透明度行动按钮背景颜色的透明值(0–1)。
按钮悬停颜色一个 Color3 对于行动按钮的“悬停悬浮信息状态。
按钮悬停透明度行动按钮的“悬停”颜色的透悬浮信息值(0–1)。
按钮下线颜色一个 Color3 用于将每个行动按钮分开的薄线。
按钮图像按钮背景的有效资产 ID 的图像。
按钮图像缩放类型一个 Enum.ScaleType 枚列用于按钮图像缩放。
按钮图像切割中心一个 Rect 指定九层图像中心的特性,当按钮图像缩放类型设置为 Enum.ScaleType.Slice 时。

文本

字体一个 Enum.Font 枚值用于名称标签和按钮文本。
文本颜色一个 Color3 为 ACM 内的所有文本。
文本缩放一个浮动值,用于缩放每个元素的默认文本大小。

各种图像

离开菜单图像ACM关闭按钮的图像ID。
滚动左图像车ousel“滚动左”按钮的图像 ID。
向右滚动图像车ousel“滚动向右”按钮的有效资产 ID 的图像。

已选择的角色

已选择的角色指示器悬停在角色头顶上的 MeshPart ,用于表示他们已被选择。

大小和位置

大小一个 UDim2 为 ACM 的整体尺寸。
最小尺寸A Vector2 指定 ACM 的最小尺寸。
最大尺寸一个 Vector2 指定 ACM 的最大尺寸。
方向比率一个浮动值,用于指定 ACM 的相对宽度和高度。
锚点ACM 的 AnchorPoint
屏幕位置A 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
})