O Menu de Contexto de Avatar (ACM) torna mais fácil para os usuários interagirem uns com os outros. Quando o ACM está habilitado em sua experiência, um usuário pode caminhar até o personagem de outro usuário e clicar nele para abrir um pequeno menu com várias opções padrão. O jogador pode enviar um solicitar / pedirde amigo, iniciar um chat privado, visualizar o perfil do usuário ou agitar.
Depois de habilitar o ACM em sua experiência, você pode personalizar o ACM das seguintes maneiras:
- Programaticamente abra e feche o ACM para usuários específicos.
- Personalize a aparência do ACM para criar uma interface de usuário única.
Ativando o Menu de Contexto do Avatar
O Menu de Contexto de Avatar deve ser ativado usando a opção StarterGui:SetCore() "AvatarContextMenuEnabled" em um LocalScript . O ACM é melhor usado em experiências onde não há comportamento predefinido para clicar em outros usuários.
Use o seguinte exemplo de código para ativar o ACM em um LocalScript :
-- Corra em um LocalScript, idealmente dentro de "StarterPlayerScripts"local StarterGui = game:GetService("StarterGui")StarterGui:SetCore("AvatarContextMenuEnabled", true)
Se você precisar detectar se o ACM está ativado, você pode usar o seguinte código para retornar um booleano no status atual do ACM:
--Retorna um booleano indicando se o ACM está atualmente habilitado.StarterGui:GetCore(AvatarContextMenuEnabled)
Abrindo e fechando o ACM
Uma vez ativado, você pode abrir e fechar o ACM programaticamente com StarterGui .
Para abrir o ACM programaticamente, use o seguinte código:
-- Use StarterGui:SetCore onde targetPlayer é um Objetode jogador válidoStarterGui:SetCore("AvatarContextMenuTarget", targetPlayer)
Para fechar o ACM programaticamente, use o seguinte código:
StarterGui:SetCore("AvatarContextMenuTarget", nil)
Opções do Menu
Você pode adicionar e remover ações através de scripting. Por padrão, o menu tem as seguintes opções:
Opción de menú | Descripción |
---|---|
Amigo | Envía una solicitud de amistad al usuario seleccionado. |
tchat | Abre una conversación privada con el usuario seleccionado en el chat de la experiencia. |
Mirar | Abre una ventana para inspeccionar la aspecto, lookdel usuario seleccionado. |
Onda | Inicia una animación de onda para el usuario seleccionado. |
Uma vez que o ACM é aberto, o usuário pode fazer scroll e selecionar outros usuários no carrossel de seleção de personagens. Os personagens são classificados com base na distância ao personagem selecionado. O menu só atualiza quando aberto e a lista de usuários disponíveis se repete quando scroll.
Adicionando Opções de Menu
Uma vez ativada, ações específicas da experiência podem ser adicionadas ao ACM. Por exemplo, uma experiência pode permitir solicitações de troca, opções de adicionar a partes ou outras interações especiais.
O exemplo a seguir mostra como adicionar uma ação personalizada ao Menu de Contexto do Avatar:
local Players = game:GetService("Players")
local StarterGui = game:GetService("StarterGui")
local player = Players.LocalPlayer
-- Conecte uma função a um "BindableEvent"
local bindableEvent = Instance.new("BindableEvent")
local function onCustomACMAction(targetPlayer)
-- Neste ponto, você poderia chamar InvokeServer () em uma RemoteFunction para alertar o servidor da seleção
print("ACM event selected by " .. player.Name .. " on " .. targetPlayer.Name)
end
bindableEvent.Event:Connect(onCustomACMAction)
-- Adicione a opção ACM usando SetCore () com "AddAvatarContextMenuOption"
local options = {"Custom ACM Action", bindableEvent}
StarterGui:SetCore("AddAvatarContextMenuOption", options)
Remover Opções de Menu
Você pode remover as opções personalizadas e padrão de Adicionar Amigo, chat/conversa, Visualização e Onda do ACM fazendo referência ao nome da Ação personalizada ou ao enum padrão Enum.AvatarContextMenuOption.
Use o código a seguir para remover uma opção de menu padrão e personalizada:
-- Remova a opção "Ação ACM Personalizada"StarterGui:SetCore("RemoveAvatarContextMenuOption", "Custom ACM Action")-- Remova a opção padrão "Amigo" fazendo referência ao AvatarContextMenuOption.Friend EnumStarterGui:SetCore("RemoveAvatarContextMenuOption", Enum.AvatarContextMenuOption.Friend)
Personalizando a Aparência do Menu
Para alterar a aparência do Menu de Contexto de Avatar, chame StarterGui:SetCore() com a opção "AvatarContextMenuTheme," fornecendo uma tabela de parâmetros e valores para ajustar a aparência do menu.
A interface de usuário do ACM inclui as seguintes seções:
A. Tag de Nome: O nome de usuário do personagem com o qual você está interagindo.
B. Quadro de Botões: Contém todos os botões ACM.
C. Botões: Botões individuais para as ações padrão ou personalizadas do ACM.
Parâmetros de Aparência
Estes são os parâmetros de personalização com o ACM:
Fundo
Color de fondo | Un Color3 para el fondo general del ACM (más útil cuando no se usa una imagen de fondo). |
Transparencia de fondo | Valor de transparencia (01) para el fondo general del ACM (más útil cuando no se usa una imagen de fondo). |
Imagen de fondo | Un ID de activo válido de una imagen para el fondo de ACM. |
Transparencia de imagen de fondo | Valor de transparencia (01) para la imagen de fondo. |
Tipo de escala de imagen de fondo | Un Enum.ScaleType enum para escalar la imagen de fondo. |
Centro de cortes de imagen de fondo | Un Rect que especifica el centro de una imagen de nueve rebanadas cuando BackgroundImageScaleType está establecido en Enum.ScaleType.Slice . |
Tag de nome
NombreEtiquetaColor | Un Color3 para la barra que muestra con qué jugador se está interactuando. |
NombreColor de subrayado | Un Color3 para la delgada línea entre la etiqueta de nombre y los botones de acción. |
Quadro de Botões
Color del marco del botón | Un Color3 para la sección (marco) que contiene los botones de acción. |
Transparencia del marco del botón | Valor de transparencia (01) para la sección de marcos de botones. |
Botão
Color del botón | Un Color3 para el fondo de los botones de acción de ACM. |
Transparencia del botón | Valor de transparencia (01) para el color de fondo de los botones de acción. |
Color del botón | Un Color3 para el estado "mantener el puntero" de los botones de acción. |
Transparencia del botón | Valor de transparencia (01) para el color "mantener el puntero" de los botones de acción. |
Color de subrayado del botón | Un Color3 para la línea delgada que separa cada botón de acción. |
Imagen del botón | Un ID de activo válido de una imagen para el fondo de botones. |
Tipo de escala de imagen de botón | Un Enum.ScaleType enum para escalar la imagen del botón. |
Centro de Cortes de Imagen de Botón | Un Rect que especifica el centro de una imagen de nueve rebanadas cuando ButtonImageScaleType está establecido en Enum.ScaleType.Slice . |
Texto
Fuente | Un Enum.Font valor enum para la etiqueta de nombre y el texto del botón. |
Color de Texto | Un Color3 para todo el texto dentro del ACM. |
Escala de texto | Un valor flotante para escalar los tamaños de texto predeterminados de cada elemento. |
Várias Imagem
DejarImagen delMenú | Un ID de activo de una imagen para el botón de cierre de ACM. |
Imagen de desplazamiento a la izquierda | Un ID de activo de una imagen para el botón "deslizar a la izquierda" del carrusel. |
Desplazarse hacia la derecha Imagen | Un ID de activo válido de una imagen para el botón "Desplazarse a la derecha" del carrusel. |
Personagem selecionado
Indicador de Personaje Seleccionado | El MeshPart que flota sobre la cabeza de un personaje para indicar que están seleccionados. |
Tamanho e Posição
Tamaño | Un UDim2 para el tamaño general del ACM. |
Tamaño mínimo | Un Vector2 que especifica el tamaño mínimo del ACM. |
Tamaño Máximo | Un Vector2 que especifica el tamaño máximo del ACM. |
Proporción de aspecto | Un valor flotante que especifica el ancho y la altura relativos del ACM. |
Punto de anclaje | El AnchorPoint del ACM. |
Posición en la pantalla | Un UDim2 que especifica la posición en pantalla del ACM (la posición a la que se ajusta cuando se abre). |
Posición Fuera de Pantalla | Un UDim2 que especifica la posición fuera de la pantalla del ACM (la posición en la que se ajusta desde/hasta cuando se abre/cierra). |
Exemplo de personalização
O código a seguir personaliza o tema do ACM usando alguns parâmetros básicos:
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})