Con el sistema de chat de texto en la experiencia, puedes soportar bubble chat para mostrar burbujas de chat personalizadas por encima de los avatares y NPCs. El chat de burbujas puede hacer que tu experiencia sea más visualmente inmersiva y ayude a los usuarios a identificar fácilmente los mensajes y sus hablantes en un modo contextualmente relevante. Esta característica es especialmente útil para experiencias donde los usuarios neces
Habilitar el chat de burbujas
Para habilitar el chat de burbujas en tu experiencia:
En la ventana Explorador, seleccione BubbleChatConfiguration debajo de TextChatService .
En la ventana Propiedades, compruebe la casilla de verificación Enabled .
Personalización de burbujas
Después de habilitar el chat de burbujas, puede personalizar la apariencia y el comportamiento de sus burbujas de chat para que coincida con su tema de experiencia. Usa la ventana Propiedades de BubbleChatConfiguration para cambios básicos como el color del texto y el espaciado, o implementa 1> personalización avanzada1> para imágenes de fondo de burbujas y otros ajustes visuales.
Alternativamente, puede agregar un LocalScript en StarterPlayerScripts con todas sus configuraciones de personalización. Esto permite que el motor aplique sus personalizaciones durante el tiempo de ejecución, anulando las configuraciones en Studio. Es útil para agregar efectos especiales a las burbujas de chat cuando los usuarios activan ciertos eventos o condiciones.
Personalización básica
La siguiente tabla muestra propiedades comunes de personalización de chat de burbujas. Para obtener una lista completa de propiedades de personalización, see BubbleChatConfiguration .
Propiedad | Descripción | Por defecto |
---|---|---|
BackgroundColor3 | Color de fondo de las burbujas en Color3 . | [250, 250, 250] > |
FontFace | Font del texto de la burbuja. | BuilderSansMedium |
TextColor3 | Color del texto de burbuja en Color3 . | [57, 59, 61] |
TextSize | Tamaño del texto de burbuja. | 16 |
Personalización Avanzada
Para una personalización avanzada de tu burbuja, añade objetos de UI que representan ciertos aspectos de la apariencia de la burbuja como niños BubbleChatConfiguration , incluida:
- ImageLabel para la configuración de la imagen de fondo.
- UIGradient para la configuración degradado de fondo.
- UICorner para la forma de la burbuja.
- UIPadding para el espacio de amortiguación entre el texto y las esquinas de la burbuja, relativo al tamaño normal del padre.
Luego de agregar estos objetos, puede modificar las propiedades de estos objetos aplicables a las burbujas de chat para la personalización de burbujas avanzada. El siguiente ejemplo LocalScript agrega una imagen de fondo y esquinas afiladas a las burbujas:
Personalización de burbujas avanzada
local TextChatService = game:GetService("TextChatService")local bubbleChatConfiguration = TextChatService.BubbleChatConfigurationbubbleChatConfiguration.TailVisible = falsebubbleChatConfiguration.TextColor3 = Color3.fromRGB(220, 50, 50)bubbleChatConfiguration.FontFace = Font.fromEnum(Enum.Font.LuckiestGuy)local bubbleUICorner = bubbleChatConfiguration:FindFirstChildOfClass("UICorner")if not bubbleUICorner thenbubbleUICorner = Instance.new("UICorner")bubbleUICorner.Parent = bubbleChatConfigurationendbubbleUICorner.CornerRadius = UDim.new(0, 0)local bubbleUIPadding = bubbleChatConfiguration:FindFirstChildOfClass("UIPadding")if not bubbleUIPadding thenbubbleUIPadding = Instance.new("UIPadding")bubbleUIPadding.Parent = bubbleChatConfigurationendbubbleUIPadding.PaddingTop = UDim.new(0, 20)bubbleUIPadding.PaddingRight = UDim.new(0, 10)bubbleUIPadding.PaddingBottom = UDim.new(0, 15)bubbleUIPadding.PaddingLeft = UDim.new(0, 10)local bubbleImageLabel = bubbleChatConfiguration:FindFirstChildOfClass("ImageLabel")if not bubbleImageLabel thenbubbleImageLabel = Instance.new("ImageLabel")bubbleImageLabel.Parent = bubbleChatConfigurationendbubbleImageLabel.Image = "rbxassetid://6733332557"bubbleImageLabel.ScaleType = Enum.ScaleType.SlicebubbleImageLabel.SliceCenter = Rect.new(40, 40, 320, 120)bubbleImageLabel.SliceScale = 0.5
Las siguientes tablas describen los disponibles GuiObject y modificador de apariencia hijos junto con sus propiedades de personalización válidas:
Propiedad | Descripción | Por defecto |
---|---|---|
Image | ID de la imagen de fondo de la burbuja. | |
ImageColor3 | Color tinte de la imagen de fondo de la burbuja en Color3 . | [255, 255, 255] |
ImageRectOffset | Desplazamiento de la área de la imagen para mostrarla desde la parte superior izquierda en píxeles. | (0, 0) |
ImageRectSize | Tamaño de la área de la imagen para mostrarse en píxeles. Para mostrar la imagen completa, establezca cualquiera de las dimensiones a 0 . | (0, 0) |
ScaleType | El tipo de escala para renderizar la imagen cuando su tamaño es diferente del tamaño absoluto de la burbuja. | Stretch |
SliceCenter | Slices los límites de la imagen si la imagen es un 9-sliced image. Aplicable solo cuando estableces ScaleType como Slice . | (0, 0, 0, 0) |
SliceScale | Eche escala a los lados de los bordes de escala si el gráfico es un gráfico de 9 espárragos. Aplica solo cuando estableces ScaleType como Slice . | 1 |
TileSize | Tamaño de azulejo de la imagen. Solo aplicable cuando estableces ScaleType como Tile . | (1, 0, 1, 0) |
Personalización de burbujas
Puedes estilizar y modificar individualmente los comportamientos de las burbujas de chat según las condiciones específicas que superponen tus configuraciones generales. Por ejemplo, puedes usar burbujas de chat para diferenciar NPC y usuarios, resaltar el estado de salud crítico y aplicar efectos especiales a los mensajes con palabras clave predeterminadas.
Para establecer la personalización de burbujas, agrega un LocalScript client-side usando BubbleChatMessageProperties , que superpone las propiedades de correspondencia de
Las siguientes propiedades de personalización básicas están disponibles para la personalización de burbujas:
Propiedad | Descripción | Por defecto |
---|---|---|
BackgroundColor3 | Color de fondo de las burbujas en Color3 . | (250, 250, 250) |
BackgroundTransparency | Transparencia de fondo de las burbujas. | 0.1 |
FontFace | Font del texto de la burbuja. | BuilderSansMedium |
TextColor3 | Color del texto de burbuja en Color3 . | [57, 59, 61] |
TextSize | Tamaño del texto de burbuja. | 16 |
El siguiente ejemplo añade un aspecto especial a las burbujas de chat de los usuarios VIP al verificar si un remitente de mensajes tiene el atributo IsVIP :
Burbujas VIP
local TextChatService = game:GetService("TextChatService")
local Players = game:GetService("Players")
-- Manipulador de eventos para cuando se agrega una nueva burbuja de chat a la experiencia
TextChatService.OnBubbleAdded = function(message: TextChatMessage, adornee: Instance)
-- Compruebe si el mensaje de chat tiene un TextSource (enviador) asociado
if message.TextSource then
-- Crea una nueva instancia de BubbleChatMessageProperties para personalizar la burbuja de chat
local bubbleProperties = Instance.new("BubbleChatMessageProperties")
-- Obtén al usuario que envió el mensaje de chat basado en su UserId
local player = Players:GetPlayerByUserId(message.TextSource.UserId)
if player:GetAttribute("IsVIP") then
-- Si el jugador es un VIP, personaliza las propiedades de la burbuja de chat
bubbleProperties.TextColor3 = Color3.fromHex("#F5CD30")
bubbleProperties.BackgroundColor3 = Color3.fromRGB(25, 27, 29)
bubbleProperties.FontFace = Font.fromEnum(Enum.Font.PermanentMarker)
end
return bubbleProperties
end
end
Todas las opciones de personalización avanzada están disponibles para la personalización de burbujas. Como con la personalización de burbujas para general de burbujas, agrega instancias que desea personalizar como hijos de BubbleChatMessageProperties . El siguiente ejemplo agrega un efecto degradado especial junto con otras propiedades para chatear burbujas de usuarios con un estado de salud bajo al verificar la propiedad de chat
Burbujas de salud baja
local TextChatService = game:GetService("TextChatService")
local Players = game:GetService("Players")
-- Manipulador de eventos para cuando se agrega una nueva burbuja de chat a la experiencia
TextChatService.OnBubbleAdded = function(message: TextChatMessage, adornee: Instance)
-- Compruebe si el mensaje de chat tiene un TextSource (enviador) asociado
if message.TextSource then
-- Obtén al usuario que envió el mensaje de chat usando su ID de usuario
local player = Players:GetPlayerByUserId(message.TextSource.UserId)
-- Encuentra el humanoide en el personaje del usuario
local humanoid = player.Character:FindFirstChildWhichIsA("Humanoid")
if humanoid and humanoid.Health < 25 then
-- Crea una nueva instancia de BubbleChatMessageProperties para personalizar la burbuja de chat
local bubbleProperties :BubbleChatMessageProperties = Instance.new("BubbleChatMessageProperties")
-- Personalizar las propiedades de la burbuja de chat para la condición de salud baja
bubbleProperties.BackgroundColor3 = Color3.fromRGB(245, 245, 245)
bubbleProperties.TextColor3 = Color3.fromRGB(234, 51, 96)
bubbleProperties.TextSize = 20
bubbleProperties.FontFace = Font.fromEnum(Enum.Font.DenkOne)
-- Agrega un UIGradient como hijo para personalizar el gradiente
local uiGradient : UIGradient = Instance.new("UIGradient")
uiGradient.Color = ColorSequence.new(Color3.fromRGB(110, 4, 0), Color3.fromRGB(0, 0, 0))
uiGradient.Parent = bubbleProperties
uiGradient.Rotation = 90
return bubbleProperties
end
end
end
Burbujas NPC
Puedes mostrar burbujas de chat para personajes no jugadores (NPC) llamando a TextChatService:DisplayBubble(), con el personaje NPC y el mensaje como parámetro. Estas burbujas son personalizables usando el TextChatService.OnBubbleAdded llamado de vuelta como cualquier otra burbuja de chat.
TextChatService:DisplayBubble() sólo funciona en scripts del lado del cliente, asi que asegúrese de usar un Script
local TextChatService = game:GetService("TextChatService")
local prompt = workspace.SomeNPC.ProximityPrompt
local head = prompt.Parent:WaitForChild("Head")
prompt.Triggered:Connect(function()
TextChatService:DisplayBubble(head, "Hello world!")
end)