El Menú contextual del 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 hasta 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, comenzar un chat privado o ver el perfil del usuario, o simplemente saludar.
Después de habilitar el ACM en tu experiencia, puedes personalizar el ACM de la siguiente manera:
- Programar abrir y cerrar el ACM para usuarios específicos.
- Personalizar la apariencia del ACM para crear una interfaz de usuario única.
Habilitando el Menú contextual de avatar
El Menú contextual del Avatar debe estar habilitado utilizando la opción StarterGui:SetCore() "AvatarContextMenuEnabled" en un LocalScript . El ACM se usa mejor en experiencias donde no hay un comportamiento predeterminado para hacer clic en otros usuarios.
Usa el siguiente código de ejemplo para habilitar el ACM en un LocalScript :
-- Ejecutarse en un LocalScript, idealmente dentro de "StarterPlayerScripts"local StarterGui = game:GetService("StarterGui")StarterGui:SetCore("AvatarContextMenuEnabled", true)
Si necesitas detectar si el modo ACM está habilitado, puedes usar el siguiente código para返回一个 valor de verdadero en el estado actual del modo ACM:
--Devuelve un valor deBooleano que indica si el ACM está actualmente habilitado.StarterGui:GetCore(AvatarContextMenuEnabled)
Abriendo y Cerrando el ACM
Una vez habilitado, puede abrir y cerrar el programa ACM con StarterGui .
Para programar el ACM, use el código siguiente:
-- Usa StarterGui:SetCore donde targetPlayer es un objeto de jugador válidoStarterGui:SetCore("AvatarContextMenuTarget", targetPlayer)
Para programar la cerradura de ACM, use el código siguiente:
StarterGui:SetCore("AvatarContextMenuTarget", nil)
Opciones de menú
Puede añadir y quitar acciones a través de scripting. Por defecto, el menú tiene las siguientes opciones:
Opción de menú | Descripción |
---|---|
Amigos | Envía una solicitud de amistad al usuario seleccionado. |
chat | Abre una conversación privada con el usuario seleccionado en el chat en la experiencia. |
Ver | Abre una ventana para inspeccionar la aspecto, lookdel usuario seleccionado. |
Saludo | Inicia una animación de onda para el usuario seleccionado. |
Una vez que el ACM esté abierto, el usuario puede desplazarse y seleccionar a 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.
Agregar opciones de menú
Una vez habilitado, se pueden agregar acciones específicas de la experiencia a la ACM. Por ejemplo, una experiencia puede permitir solicitudes de intercambio, opciones de grupo y 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 "BindableEvent"
local bindableEvent = Instance.new("BindableEvent")
local function onCustomACMAction(targetPlayer)
-- En este punto, podría invocar 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ú
Puedes eliminar las opciones personalizadas y predeterminadas de Añadir Amigo, chat, Ver y Oleada de la ACM al referirte al nombre de acción personalizado o al índice de Enum.AvatarContextMenuOption por defecto.
Usa el siguiente código para eliminar una opción de menú por defecto y personalizada:
-- Elimina la opción "Acción ACM Personalizada"StarterGui:SetCore("RemoveAvatarContextMenuOption", "Custom ACM Action")-- Elimina la opción "Amigos" por defecto al hacer referencia a la opción "AvatarContextMenuOption.Friend Enum"StarterGui:SetCore("RemoveAvatarContextMenuOption", Enum.AvatarContextMenuOption.Friend)
Personalizar la apariencia del menú
Para cambiar la apariencia del Menú de Contexto del Avatar, llama 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 del usuario 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 de todos los eventos de la ACM (más útil cuando no se utiliza una imagen de fondo). |
Transparencia de Fondo | Valor de transparencia (0-1) para el fondo de la 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 ACM. |
Transparencia de la imagen de fondo | Valor de transparencia (0-1) para la imagen de fondo. |
Tipo de escalado de imagen de fondo | Un Enum.ScaleType enum para escalar imágenes de fondo. |
Imagen de Fondo Central | Un Rect que especifica el centro de una imagen de nueve espacios cuando el tipo de escalado de fondo está establecido en Enum.ScaleType.Slice . |
Etiqueta de nombre
Color de etiqueta de nombre | Un Color3 para la barra que muestra con qué jugador se está interactuando. |
Color de línea de nombre | Una Color3 para la línea delgada entre la etiqueta de nombre y los botones de acción. |
Marco de Botón
Color de 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 de marco de botón. |
Botón
Color de botón | Un Color3 para el fondo de los botones de acción de 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 | A Color3 para el estado " mantener el puntero"de los botones de acción. |
Transparencia del botón | Valor de transparencia (0-1) para el color " mantener el puntero" de los botones de acción. |
Color de contorno de 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 escalado de imagen de botón | Un Enum.ScaleType enum para la escalado de imágenes de botón. |
Centro de Imagen de Botón | Un Rect que especifica el centro de una imagen de nueve espacios cuando ButtonImageScaleType está configurado como Enum.ScaleType.Slice . |
Texto
Fuente | Un valor de 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. |
Escala de texto | Un valor de flotar para escalar los tamaños de texto predeterminados de cada elemento. |
Imagen Varía
Salir de la Imagen | Un ID de imagen de una imagen para el botón de cierre de ACM. |
Imagen de desplazamiento hacia la izquierda | Un ID de imagen para el botón del carrusel "desplazarse hacia la izquierda". |
Imagen de derecho de desplazamiento | Un ID de activo válido de una imagen para el botón "desplazarse hacia la derecha". |
Personaje Seleccionado
Indicador de personaje seleccionado | El MeshPart que flota 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 de la minilla | 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. |
Ratio de aspecto | Un valor flotante que especifica la longitud y altura relativa del ACM. |
Punto de anclaje | El AnchorPoint del ACM. |
Posición de pantalla | Un UDim2 que especifica la posición en la pantalla del ACM (la posición donde se pone cuando se abre). |
Posición de pantalla desactivada | Un UDim2 que especifica la posición fuera de la pantalla del ACM (la posición donde se pone de/a cuando se abre/cierra). |
Personalización de ejemplo
El siguiente código personalizado muestra el tema de 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})