Este ejemplo muestra cómo usar la clase TextChatService para diseñar tu propio frontend.Reutiliza los canales de texto predeterminados de CreateDefaultTextChannels y es muy simple en comparación con la interfaz de usuario predeterminada.
Desactive la interfaz de usuario predeterminada que viene con el al configurar las propiedades y a en la ventana de propiedades de Studio.
Crea un reemplazo para la barra de entrada de chat. Esta es la caja de texto que emite mensajes cuando el usuario presiona Enter .
Crea un ScreenGui y hazlo padre de StarterGui .
Crea un TextBox y hazlo padre del nuevo ScreenGui , luego reposiciona y redimensiona como desees.
Crea un LocalScript y hazlo padre del nuevo TextBox.
Añade el siguiente código al LocalScript :
Clientelocal TextChatService = game:GetService("TextChatService")-- RBXGeneral es el canal público predeterminadolocal RBXGeneral = TextChatService:FindFirstChild("TextChannels"):WaitForChild("RBXGeneral")local textBox = script.ParenttextBox.FocusLost:Connect(function(enterPressed)local text = textBox.Textif enterPressed and #text > 0 thenlocal success, response = pcall(function()return RBXGeneral:SendAsync(textBox.Text)end)if not success thenRBXGeneral:DisplaySystemMessage("Failed to send message")end-- Los usuarios esperan que la caja de entrada se limpie después de enviar un mensajetextBox.Text = ""endend)
Crea una sustitución para la ventana de chat.Este es el ScrollingFrame que muestra mensajes como se reciben de TextChatService.MessageReceived .Este paso también crea un UIListLayout para distribuir automáticamente los mensajes.
Crea otro nuevo ScreenGui y hazlo padre de StarterGui .
Crea un ScrollingFrame y hazlo padre del ScreenGui , luego reposiciona y redimensiona como desees.
Crea un UIListLayout y hazlo padre del ScrollingFrame.
Crea un LocalScript y hazlo padre del ScrollingFrame.
Añade el siguiente código al LocalScript :
Clientelocal TextChatService = game:GetService("TextChatService")-- Función para crear una nueva etiqueta de texto para cada mensaje recibidolocal function addMessageGui(textChatMessage: TextChatMessage)local isOutgoingMessage = textChatMessage.Status == Enum.TextChatMessageStatus.Sendinglocal parent = script.Parentlocal originalLabel = parent:FindFirstChild(textChatMessage.MessageId)if originalLabel thenoriginalLabel.Text = textChatMessage.TextoriginalLabel.BackgroundTransparency = if isOutgoingMessage then 0.5 else 0elselocal textLabel = Instance.new("TextLabel")textLabel.BorderSizePixel = 0textLabel.Font = Enum.Font.BuilderSanstextLabel.TextSize = 18textLabel.TextXAlignment = Enum.TextXAlignment.LefttextLabel.BackgroundTransparency = if isOutgoingMessage then 0.5 else 0textLabel.BackgroundColor3 = Color3.fromRGB(0, 0, 0)textLabel.TextColor3 = Color3.fromRGB(255, 255, 255)textLabel.Name = textChatMessage.MessageIdtextLabel.AutomaticSize = Enum.AutomaticSize.XYtextLabel.Text = textChatMessage.TexttextLabel.Parent = parentendend-- Comience a escuchar mensajes entrantesTextChatService.MessageReceived:Connect(addMessageGui)
Prueba tu experiencia enviando mensajes en la barra de entrada de chat.Deberías ver los mensajes aparecer en la ventana de chat.Luego puedes expandir este ejemplo agregando funciones como enfocar el cuando se presiona una tecla o agregando etiquetas de chat .