El Menú de Contexto de Avatar (ACM) hace que sea más fácil para los usuarios interactuar entre sí. Cuando el ACM está habilitado en su experiencia, un usuario puede caminar hacia el personaje de otro usuario y hacer clic en ellos para abrir un pequeño menú con varias opciones predeterminadas. El jugador puede enviar una solicitud de amigo, iniciar un chat privado, ver el perfil del usuario o hacer olas.
Después de habilitar el ACM en tu experiencia, puedes personalizar el ACM de las siguientes maneras:
- Programáticamente abre y cierra el ACM para usuarios específicos.
- Personaliza la apariencia de ACM para crear una interfaz de usuario única.
Habilitar el menú contextual del avatar
El menú contextual de avatar debe estar habilitado usando la opción StarterGui:SetCore() "AvatarContextMenuEnabled" en un LocalScript . El ACM se usa mejor en experiencias donde no hay un comportamiento predefinido para hacer clic en otros usuarios.
Use la siguiente muestra 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 una booleana que indica si el ACM está actualmente habilitado.StarterGui:GetCore(AvatarContextMenuEnabled)
Abrir y Cerrar el ACM
Una vez habilitado, puede abrir y cerrar el ACM programáticamente con StarterGui .
Para abrir el ACM programáticamente, use el siguiente código:
-- Usa StarterGui:SetCore donde targetPlayer es un objeto de jugador válidoStarterGui:SetCore("AvatarContextMenuTarget", targetPlayer)
Para cerrar programáticamente el ACM, use el siguiente código:
StarterGui:SetCore("AvatarContextMenuTarget", nil)
Opciones del menú
Puede 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. |
Mirar | Abre una ventana para inspeccionar la aspecto, lookdel usuario seleccionado. |
Onda | Inicia una animación de onda para 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 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ñadiendo Opciones de Menú
Una vez habilitado, las acciones específicas de la experiencia se pueden agregar al ACM. Por ejemplo, una experiencia puede permitir solicitudes de comercio, agregar opciones a la fiesta u 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
-- Conecta una función a un "Evento Vinculable"
local bindableEvent = Instance.new("BindableEvent")
local function onCustomACMAction(targetPlayer)
-- En este punto, podría 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)
Eliminando Opciones del Menú
Puede eliminar las opciones personalizadas y predeterminadas de Agregar amigo, chat, vista y ola 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:
-- Elimina la opción "Acción ACM personalizada"StarterGui:SetCore("RemoveAvatarContextMenuOption", "Custom ACM Action")-- Elimina la opción predeterminada "Amigo" haciendo referencia al Enum de AvatarContextMenuOption.FriendStarterGui:SetCore("RemoveAvatarContextMenuOption", Enum.AvatarContextMenuOption.Friend)
Personalización de la apariencia del menú
Para cambiar la apariencia del menú contextual del avatar, llame 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 está interactuando.
B. Marco de botones: Contiene todos los botones ACM.
C. Botones: Botones individuales para las acciones 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 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. |
Etiqueta de nombre
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. |
Marco de botones
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ón
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. |
Diversa Imagen
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. |
Personaje Seleccionado
Indicador de Personaje Seleccionado | El MeshPart que flota sobre 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 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). |
Ejemplo de personalización
La siguiente muestra 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})