El Menú contextual de avatares (ACM) facilita que los usuarios interactúen entre sí.Cuando el ACM está habilitado en tu experiencia, un usuario puede caminar hasta el personaje de otro usuario y hacer clic en él para abrir un pequeño menú con varias opciones predeterminadas.El jugador puede enviar una solicitud de amistad, iniciar un chat privado, ver el perfil del usuario o saludar.
Después de habilitar el ACM en tu experiencia, puedes personalizar el ACM de la siguiente manera:
- Programáticamente abre y cierra el ACM para usuarios específicos.
- Personalice la apariencia de ACM para crear una interfaz de usuario única.
Habilitar el menú contextual de avatar
El menú contextual de avatar debe estar habilitado usando la opción StarterGui:SetCore() de "Menú contextual de avatar habilitado" en un LocalScript.El ACM se utiliza mejor en experiencias en las que no hay un comportamiento predefinido para hacer clic en otros usuarios.
Usa el siguiente ejemplo de código para habilitar el ACM en un LocalScript :
-- Ejecutar en un LocalScript, idealmente dentro de "StarterPlayerScripts"local StarterGui = game:GetService("StarterGui")StarterGui:SetCore("AvatarContextMenuEnabled", true)
Si necesita detectar si el ACM está habilitado, puede usar el siguiente código para devolver un booleano sobre el estado actual del ACM:
--Devuelve un booleano que indica si el ACM está actualmente habilitado.StarterGui:GetCore(AvatarContextMenuEnabled)
Abre y cierra el ACM
Una vez habilitado, puedes abrir y cerrar el programa ACM de forma programática con StarterGui.
Para abrir el ACM de forma programática, use el siguiente código:
-- Usa StarterGui:SetCore donde targetPlayer es un objeto válido de JugadorStarterGui:SetCore("AvatarContextMenuTarget", targetPlayer)
Para cerrar el ACM de forma programática, use el siguiente código:
StarterGui:SetCore("AvatarContextMenuTarget", nil)
Opciones de menú
Puedes agregar y eliminar acciones a través de scripting. Por defecto, el menú tiene las siguientes opciones:
Opción de menú | Descripción |
---|---|
Amigo | Envía una solicitud de amistad al usuario seleccionado. |
chat | Abre una conversación privada con el usuario seleccionado en el chat de la experiencia. |
Ver | Abre una ventana para inspeccionar la aspecto, lookdel usuario seleccionado. |
Saludo | Inicia una animación de onda al usuario seleccionado. |
Una vez que el ACM esté abierto, el usuario puede desplazarse y seleccionar a otros usuarios en la carrusela de selección de caracteres.Los personajes se ordenan según la distancia al personaje seleccionado.El menú solo se actualiza cuando se abre y la lista de usuarios disponibles se repetirá al desplazarse.

Añadir opciones de menú
Una vez habilitado, se pueden agregar acciones específicas de la experiencia al ACM.Por ejemplo, una experiencia podría permitir solicitudes de intercambio, opciones para grupos o otras interacciones especiales.
El siguiente ejemplo muestra cómo agregar una acción personalizada al menú contextual de Avatar:
local Players = game:GetService("Players")
local StarterGui = game:GetService("StarterGui")
local player = Players.LocalPlayer
-- Conectar una función a un "BindableEvent"
local bindableEvent = Instance.new("BindableEvent")
local function onCustomACMAction(targetPlayer)
-- En este punto, podrías llamar a InvokeServer() en una función remota para alertar al servidor de la selección
print("ACM event selected by " .. player.Name .. " on " .. targetPlayer.Name)
end
bindableEvent.Event:Connect(onCustomACMAction)
-- Añade la opción ACM usando SetCore() con "AddAvatarContextMenuOption"
local options = {"Custom ACM Action", bindableEvent}
StarterGui:SetCore("AddAvatarContextMenuOption", options)
Eliminar opciones de menú
Puedes eliminar las opciones personalizadas y predeterminadas de Añadir amigo, chat, Ver y Ola de la ACM haciendo referencia al nombre de acción personalizado o al enumerado predeterminado Enum.AvatarContextMenuOption.
Usa el siguiente código para eliminar una opción de menú predeterminada y personalizada:
-- Eliminar la opción "Acción personalizada de ACM"StarterGui:SetCore("RemoveAvatarContextMenuOption", "Custom ACM Action")-- Elimina la opción predeterminada de "Amigo" haciendo referencia al AvatarContextMenuOption.Friend EnumStarterGui:SetCore("RemoveAvatarContextMenuOption", Enum.AvatarContextMenuOption.Friend)
Personalizar la aspecto, lookdel menú
Para cambiar la apariencia del menú contextual de avatar, llame a StarterGui:SetCore() con la opción "AvatarContextMenuTheme", proporcionando una tabla de parámetros y valores para ajustar la aspecto, lookdel menú.
La interfaz de usuario de ACM incluye las siguientes secciones:

A. Etiqueta de nombre: El nombre de usuario del personaje con el que se interactúa.
B. Marco de botón: Contiene todos los botones de ACM.
C. Botones: botones individuales para las acciones de ACM predeterminadas o personalizadas.
Parámetros de apariencia
Estos son los parámetros de personalización con el ACM:
Fondo
Color de fondo | Un Color3 para el fondo general del ACM (más útil cuando no se utiliza una imagen de fondo). |
Transparencia de fondo | Valor de transparencia (0–1) para el fondo general del ACM (más útil cuando no se utiliza 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 (0–1) para la imagen de fondo. |
Tipo de escala de imagen de fondo | Un enumerado Enum.ScaleType para el escalado de imágenes de fondo. |
Centro de imagen de fondo | Un Rect que especifica el centro de una imagen de nueve capas cuando BackgroundImageScaleType está establecido en Enum.ScaleType.Slice. |
Etiqueta de nombre
Color de etiqueta de nombre | Un Color3 para la barra que muestra qué jugador está siendo interactuado. |
Color de subrayado de nombre | Un Color3 para la línea delgada entre la etiqueta de nombre y los botones de acción. |
Marco de botón
Color del marco de botón | Un Color3 para la sección (marco) que contiene los botones de acción. |
Transparencia del marco de botones | Valor de transparencia (0–1) para la sección del marco de botones. |
Botón
Color del botón | Un Color3 para el fondo de los botones de acción del ACM. |
Transparencia del botón | Valor de transparencia (0–1) para el color de fondo de los botones de acción. |
Color de botón de pasar el mouse | Un Color3 para el estado "mantener el puntero" de los botones de acción. |
Transparencia de botón en movimiento | Valor de transparencia (0–1) para el color "mantener el puntero" de los botones de acción. |
Color de borde inferior del botón | Un Color3 para la línea delgada que separa cada botón de acción. |
Imagen de botón | Un ID de activo válido de una imagen para el fondo de los botones. |
Tipo de escala de imagen de botón | Un enumerado Enum.ScaleType para el escalado de imágenes de botón. |
BotónImageSliceCenter | Un Rect que especifica el centro de una imagen de nueve capas cuando ButtonImageScaleType está establecido en Enum.ScaleType.Slice. |
Texto
Fuente | Un valor de enumeración Enum.Font para la etiqueta de nombre y el texto del botón. |
Color de texto | Un Color3 para todo el texto dentro del ACM. |
TextoEscala | Un valor flotante para escalar los tamaños de texto predeterminados de cada elemento. |
Diversas imágenes
Imagen del menú de salida | Un ID de activo de una imagen para el botón de cierre de ACM. |
Imagen desplazada hacia la izquierda | Un ID de activo de una imagen para el botón "desplazarse hacia la izquierda" del carrusel. |
Imagen de desplazamiento hacia la derecha | Un ID de activo válido de una imagen para el botón "desplazarse hacia la derecha" del carrusel. |
Personaje seleccionado
Indicador de personaje seleccionado | El MeshPart que flota por encima de la cabeza de un personaje para indicar que están seleccionados. |
Tamaño y posición
Tamaño | Un UDim2 para el tamaño general del ACM. |
Tamaño mínimo | Un Vector2 especificando el tamaño mínimo del ACM. |
Tamaño máximo | Un Vector2 especificando el tamaño máximo del ACM. |
Relación de aspecto | Un valor flotante que especifica la anchura y altura relativas del ACM. |
Punto de anclaje | El AnchorPoint de la ACM. |
Posición en la pantalla | Un UDim2 especificando la posición en la pantalla del ACM (la posición en la que se vuelve adolescente cuando se abre). |
Posición fuera de la pantalla | Un UDim2 que especifica la posición fuera de la pantalla del ACM (la posición en la que se tweens de/a cuando se abre/cierra). |
Personalización de ejemplo
El siguiente ejemplo de código personaliza el tema de ACM usando algunos 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})
