Menú contextual del avatar

*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.

El menú contextual del avatar (ACM) facilita que los usuarios interactúen entre sí. Cuando el ACM está habilitado en tu juego, un usuario puede acercarse al 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, comenzar un chat privado, ver el perfil del usuario o saludar.

Después de habilitar el ACM en tu juego, puedes personalizar el ACM de las siguientes maneras:

Habilitar el menú contextual del avatar

El menú contextual del avatar debe ser habilitado utilizando la opción StarterGui:SetCore() "AvatarContextMenuEnabled" en un LocalScript. El ACM se utiliza mejor en juegos donde no hay un comportamiento predefinido al 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 necesitas detectar si el ACM está habilitado, puedes usar el siguiente código para devolver un booleano sobre el estado actual del ACM:


---Devuelve un booleano indicando si el ACM está actualmente habilitado.
StarterGui:GetCore(AvatarContextMenuEnabled)

Abrir y cerrar el ACM

Una vez habilitado, puedes abrir y cerrar el ACM programáticamente con StarterGui.

Para abrir programáticamente el ACM, usa el siguiente código:


-- Usa StarterGui:SetCore donde targetPlayer es un objeto Player válido
StarterGui:SetCore("AvatarContextMenuTarget", targetPlayer)

Para cerrar programáticamente el ACM, usa el siguiente código:


StarterGui:SetCore("AvatarContextMenuTarget", nil)

Opciones del menú

Puedes agregar y eliminar acciones a través de scripting. Por defecto, el menú tiene las siguientes opciones:

Opción del menúDescripción
AmigoEnvía una solicitud de amistad al usuario seleccionado.
ChatAbre una conversación privada con el usuario seleccionado en el chat del juego.
VerAbre una ventana para inspeccionar la apariencia del usuario seleccionado.
SaludarInicia una animación de saludo hacia el usuario seleccionado.

Una vez que el ACM esté abierto, el usuario puede desplazarse y seleccionar otros usuarios en el carrusel de selección de personajes. Los personajes se ordenan en función de la distancia al personaje seleccionado. El menú solo se actualiza cuando se abre y la lista de usuarios disponibles se repetirá al desplazarse.

Agregar opciones al menú

Una vez habilitado, se pueden agregar acciones específicas del juego al ACM. Por ejemplo, un juego podría permitir solicitudes de intercambio, opciones para unirse a una fiesta u otras interacciones especiales.

El siguiente ejemplo muestra cómo agregar una acción personalizada al menú contextual del 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 un RemoteFunction para alertar al servidor sobre la selección
print("Evento del ACM seleccionado por " .. player.Name .. " en " .. targetPlayer.Name)
end
bindableEvent.Event:Connect(onCustomACMAction)
-- Agrega la opción del ACM usando SetCore() con "AddAvatarContextMenuOption"
local options = {"Acción personalizada de ACM", bindableEvent}
StarterGui:SetCore("AddAvatarContextMenuOption", options)

Eliminar opciones del menú

Puedes eliminar opciones personalizadas y las opciones predeterminadas de Agregar amigo, Chat, Ver y Saludar del ACM haciendo referencia al nombre de la acción personalizada o al enum 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", "Acción personalizada de ACM")
-- Eliminar la opción predeterminada "Amigo" haciendo referencia al Enum AvatarContextMenuOption.Friend
StarterGui:SetCore("RemoveAvatarContextMenuOption", Enum.AvatarContextMenuOption.Friend)

Personalizar la apariencia del menú

Para cambiar la apariencia del menú contextual del avatar, llama a StarterGui:SetCore() con la opción "AvatarContextMenuTheme", proporcionando una tabla de parámetros y valores para ajustar la apariencia del menú.

La interfaz de usuario del ACM incluye las siguientes secciones:

A. Etiqueta de nombre: El nombre del usuario del personaje con el que se está interactuando.

B. Marco de botones: Contiene todos los botones del ACM.

C. Botones: Botones individuales para las acciones predeterminadas o personalizadas del ACM.

Parámetros de apariencia

Estos son los parámetros de personalización del ACM:

Fondo

BackgroundColorUn Color3 para el fondo general del ACM (más útil cuando no se usa una imagen de fondo).
BackgroundTransparencyValor de transparencia (0–1) para el fondo general del ACM (más útil cuando no se usa una imagen de fondo).
BackgroundImageUn ID de activo válido de una imagen para el fondo del ACM.
BackgroundImageTransparencyValor de transparencia (0–1) para la imagen de fondo.
BackgroundImageScaleTypeUn enum Enum.ScaleType para el escalado de la imagen de fondo.
BackgroundImageSliceCenterUn Rect que especifica el centro de una imagen de nueve partes cuando BackgroundImageScaleType está configurado como Enum.ScaleType.Slice.

Etiqueta de nombre

NameTagColorUn Color3 para la barra que muestra qué jugador se está interactuando.
NameUnderlineColorUn Color3 para la línea delgada entre la etiqueta de nombre y los botones de acción.

Marco de botones

ButtonFrameColorUn Color3 para la sección (marco) que contiene los botones de acción.
ButtonFrameTransparency Valor de transparencia (0–1) para la sección del marco de botones.

Botón

ButtonColorUn Color3 para el fondo de los botones de acción del ACM.
ButtonTransparencyValor de transparencia (0–1) para el color de fondo de los botones de acción.
ButtonHoverColorUn Color3 para el estado de "sobre" de los botones de acción.
ButtonHoverTransparencyValor de transparencia (0–1) para el color de "sobre" de los botones de acción.
ButtonUnderlineColorUn Color3 para la línea delgada que separa cada botón de acción.
ButtonImageUn ID de activo válido de una imagen para el fondo de los botones.
ButtonImageScaleTypeUn enum Enum.ScaleType para el escalado de la imagen del botón.
ButtonImageSliceCenterUn Rect que especifica el centro de una imagen de nueve partes cuando ButtonImageScaleType está configurado como Enum.ScaleType.Slice.

Texto

FontUn valor enum Enum.Font para la etiqueta de nombre y el texto de los botones.
TextColorUn Color3 para todo el texto dentro del ACM.
TextScaleUn valor float para escalar los tamaños de texto predeterminados de cada elemento.

Varios imágenes

LeaveMenuImageUn ID de activo de una imagen para el botón de cerrar el ACM.
ScrollLeftImageUn ID de activo de una imagen para el botón de "desplazar a la izquierda" del carrusel.
ScrollRightImageUn ID de activo válido de una imagen para el botón de "desplazar a la derecha" del carrusel.

Personaje seleccionado

SelectedCharacterIndicatorEl MeshPart que flota sobre la cabeza de un personaje para indicar que está seleccionado.

Tamaño y posición

SizeUn UDim2 para el tamaño total del ACM.
MinSizeUn Vector2 que especifica el tamaño mínimo del ACM.
MaxSizeUn Vector2 que especifica el tamaño máximo del ACM.
AspectRatioUn valor float que especifica la relación de ancho y alto del ACM.
AnchorPointEl AnchorPoint del ACM.
OnScreenPositionUn UDim2 que especifica la posición en pantalla del ACM (la posición a la que se anima cuando se abre).
OffScreenPositionUn UDim2 que especifica la posición fuera de pantalla del ACM (la posición de la que se anima cuando se abre/cierra).

Ejemplo de personalización

El siguiente ejemplo de código personaliza el tema del ACM utilizando 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
})
©2026 Roblox Corporation. Roblox, el logotipo de Roblox y "Powering Imagination" son algunas de nuestras marcas registradas y no registradas en los Estados Unidos y otros países.