Menu de contexto de avatar

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

O Menu de Conjunto de Avatar (ACM) facilita a interação entre usuários. Quando o ACM estiver ativado na sua experiência, um usuário pode caminhar até outro usuário's personagem e clicar nele para abrir um pequeno menu com várias opções padrão. O jogador pode enviar uma solicitar / pedirde amigo, iniciar uma conversa privada ou ver o perfil do usuário. O jogador pode enviar uma solicitação de onda.

Depois de habilitar o ACM em sua experiência, você pode personalizar o ACM da seguinte maneira:

Habilitando o Menu de Contexto de Avatar

O Menu de Contexto do Avatar deve ser habilitado 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 código de exemplo para habilitar o ACM em um LocalScript :


-- Execute em um LocalScript, idealmente dentro de "StarterPlayerScripts"
local StarterGui = game:GetService("StarterGui")
StarterGui:SetCore("AvatarContextMenuEnabled", true)

Se você precisar detectar se o ACM está habilitado, você pode usar o seguinte código para retornar um booleano no status atual do ACM:


--Retorna um boolo indicando se o ACM está atualmente habilitado.
StarterGui:GetCore(AvatarContextMenuEnabled)

Abrindo e Fechando o ACM

Uma vez ativado, você pode abrir e fechar o programa ACMaticamente com StarterGui .

Para abrir programaticamente o ACM, use o seguinte código:


-- Use StarterGui:SetCore onde o targetPlayer é um Objetode Jogador válido
StarterGui:SetCore("AvatarContextMenuTarget", targetPlayer)

Para fechar programaticamente o ACM, use o seguinte código:


StarterGui:SetCore("AvatarContextMenuTarget", nil)

Opções de Menu

Você pode adicionar e remover ações através de scripting. Por padrão, o menu tem as seguintes opções:

Opção de MenuDescrição
AmigoEnvia um pedido de amigo para o usuário selecionado.
chat/conversaAbre uma conversa privada com o usuário selecionado no chat na experiência.
VisualizarAbre uma janela para inspeitar a aparência do usuário selecionado.
OndaInicia uma animação de onda para o usuário selecionado.

Uma vez que o ACM está aberto, o usuário pode rolar e selecionar outros usuários na roda de seleção de personagens. Os personagens são classificados com base na distância para o personagem selecionado. O menu só é atualizado quando aberto e a lista de usuários disponíveis será repetida ao rolar.

Adicionando Opções de Menu

Uma vez ativado, ações específicas de experiência podem ser adicionadas ao ACM. Por exemplo, uma experiência pode permitir solicitações de comércio, opções de grupo ou outras interações especiais.

O seguinte exemplo 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ê pode chamar InvokeServer() em uma Função Remota 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)

Removendo Opções de Menu

Você pode remover as opções de Adicionar Amigo, chat/conversa, Ver e Onda personalizadas do ACM ao referenciar o nome de ação personalizado ou o índice padrão Enum.AvatarContextMenuOption.

Use o seguinte código para remover uma opção de menu padrão e personalizado:


-- Remova a opção "Ação ACM Personalizada"
StarterGui:SetCore("RemoveAvatarContextMenuOption", "Custom ACM Action")
-- Remova a opção "Amigo" padrão ao referenciar o AvatarContextMenuOption.Friend Enum
StarterGui:SetCore("RemoveAvatarContextMenuOption", Enum.AvatarContextMenuOption.Friend)

Personalizando a Aparência do Menu

Para alterar a aparência do Menu de Contexto do 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 do usuário da ACM inclui as seguintes seções:

A. Nome de Usuário: O nome do usuário com quem o personagem está interagindo.

B. Frame de Botão: 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

Esses são os parâmetros de personalização com o ACM:

Fundo

Cor de fundoUm Color3 para o fundo geral do ACM (mais útil quando não estiver usando uma imagem de fundo).
Transparência de FundoValor de transparência (0-1) para o fundo geral do ACM (mais útil quando não estiver usando uma imagem de fundo).
Imagem de fundoUm ID de recurso válido de uma imagem para o fundo ACM.
Transparência de Imagem de FundoValor de transparência (0-1) para a imagem de fundo.
Tipo de escala de imagem de fundoUm Enum.ScaleType 枚 para escalonamento de imagem de fundo.
Rastro de Imagem de FundoUm Rect especificando o centro de uma imagem de novembro quando o Tipo de Imagem de Fundo é definido como Enum.ScaleType.Slice.

Nome de Tag

Cor do Tag de NomeUm Color3 para a barra mostrando com qual jogador está interagindo.
Cor de Sublinho de NomeUma Color3 para a linha fina entre a etiqueta de nome e os botões de ação.

Armação de Botão

Cor do Quadro de BotõesUm Color3 para a seção (quadro) contendo os botões de ação.
Transparência do BotãoValor de transparência (0-1) para a seção de quadro de botão.

Botão

Cor do BotãoUm Color3 para o fundo dos botões de ação do ACM.
Transparência do BotãoValor de transparência (0-1) para a cor de fundo dos botões de ação.
Cor do BotãoUm Color3 para o estado " flutuar" dos botões de ação.
Transparência do BotãoValor de transparência (0-1) para a cor " flutuar" dos botões de ação.
Cor de Sublinho de BotãoUm Color3 para a linha fina que separa cada botão de ação.
Imagem de BotãoUm ID de ativo válido de uma imagem para o fundo dos botões.
Tipo de escala de imagem de botãoUm Enum.ScaleType enum para escalonamento de imagem de botão.
Centro de Corte de Imagem de BotãoUm Rect especificando o centro de uma imagem de novembro quando o ButtonImageScaleType estiver definido como Enum.ScaleType.Slice.

Texto

FonteUm valor Enum.Font para o nome da etiqueta e texto do botão.
Cor de TextoUm Color3 para todo o texto dentro do ACM.
Escala de TextoUm valor flutuante para escalar os tamanhos de texto padrão de cada elemento.

Várias Imagens

Sair da ImagemUm ID de imagem de uma imagem para o botão de fechamento ACM.
Imagem de rolagem esquerdaUm ID de imagem de uma imagem para o botão "role para a esquerda".
Imagem de ScrollRightUm ID de ativo válido de uma imagem para o botão "role para a direita" do carrossel.

Personagem Selecionado

Índice de Personagem SelecionadoO MeshPart que flutua acima da cabeça de um personagem para indicar que eles são selecionados.

Tamanho e Posição

TamanhoUm UDim2 para o tamanho geral do ACM.
Tamanho MínimoUm Vector2 especificando o tamanho mínimo do ACM.
Tamanho MáximoUm Vector2 especificando o tamanho máximo do ACM.
Rácio de AspectoUm valor flutuante especificando a largura e altura relativa do ACM.
Ponto de AncoragemO AnchorPoint do ACM.
Posição na TelaUm UDim2 especificando a posição na tela do ACM (a posição onde ele sobe quando aberto).
Posição fora da telaUm UDim2 especificando a posição fora da tela do ACM (a posição onde ele sobe/desce quando aberto/fechado).

Exemplo de Personalização

O seguinte código de exemplo personaliza o tema 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
})