虚拟形象上下文菜单

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

虚拟形象上下文菜单 (ACM) 使用户更容易与其他用户互动。 当在您的体验中启用 ACM 时,用户可以走到另一个用户的角色并单击他们打开小菜单。 玩家可以发送朋友请求、开始私人聊天、查看用户的 个人资料rofil 或波。

在启用 ACM 在您的体验后,您可以根据以下方式自定义 ACM:

启用虚拟形象上下文菜单

虚拟形象上下文菜单必须使用 StarterGui:SetCore() 选项 “AvatarContextMenuEnabled” 在 LocalScript 中。 最好在体验中使用无需预设的行为为其他用户点击。

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


-- 运行在本地脚本中,通常在“新手玩家脚本”中
local StarterGui = game:GetService("StarterGui")
StarterGui:SetCore("AvatarContextMenuEnabled", true)

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


--返回一个指示 ACM 是否已启用的Boolean。
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)
-- 使用 SetCore() 使用 "AddAvatarContextMenuOption" 添加 ACM 选项
local options = {"Custom ACM Action", bindableEvent}
StarterGui:SetCore("AddAvatarContextMenuOption", options)

移除菜单选项

您可以通过在自定义行为名称或默认Enum.AvatarContextMenuOption枚列中引用自定义选项来从 ACM 中移除自定义和默认的“Enum.AvatarContextMenuOption”、“聊天”、“查看”和“2>波浪2>”选项。

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


-- 移除“自定义 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 的整体背景。(使用不使用背景图像时最为有用)。
背景透明度透明度值(0-1) 对于ACM的整体背景(最有用的时候不使用背景图像)。
背景图像一个有效的图像资产ID,用于 ACM 背景。
背景图像透明度背景图像的透明度(0-1)。
背景图像 escal 类型一个 Enum.ScaleType 枚对背景图像的缩放。
背景图像片中心一个 Rect 指定一个九个切割图像的中心,当背景图像类型设置为 Enum.ScaleType.Slice

名称标签

名称标签颜色Datatype.Color3 对于显示哪个玩家正在互动的条。
命名字符串颜色Datatype.Color3 用于名称标签和行动按钮之间的薄线。

按钮框

按钮框颜色Datatype.Color3 对于包含 action 按钮的部分 (框架).
按钮框透明度按钮框段的透明度(0–1)值。

按钮

按钮颜色一个 Color3 为 ACM 操作按钮的背景。
按钮透明度动作按钮的背景颜色(0-1)。
按钮悬停颜色Datatype.Color3 对于“悬停”状态的动作按钮。
按钮透明度透明度值(0-1)对动作按钮的“悬浮信息停”颜色。
按钮轮廓颜色Datatype.Color3 用于分离每个 action 按钮的细线。
按钮图像一个有效的图像ID,用于按钮的背景。
按钮图像缩放类型Entity.ScaleType 枚按钮图像缩放。
按钮图像片中心一个 Rect 指定一个九个切割图像的中心,当 ButtonImageScaleType 设置为 Enum.ScaleType.Slice

文本

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

各种图像

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

已选择角色

选定角色指示器头顶上漂浮的MeshPart,表示他们已被选中。

大小和位置

大小一个 UDim2 对 ACM 的整体尺寸。
最小尺寸一个 Vector2 指定 ACM 的最小尺寸。
最大尺寸一个 Vector2 指定 ACM 的最大尺寸。
外观比例一个漂浮值,指定 ACM 的相对宽度和高度。
锚定点ACM的AnchorPoint
屏幕位置一个 UDim2 指定在屏幕上的 ACM 位置 (当打开时变更位置的位置)。
屏幕位置一个 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
})