Cet exemple montre comment utiliser la classe TextChatService pour concevoir votre propre frontend. Il réutilise les canaux de texte par défaut de CreateDefaultTextChannels et est très simple par rapport à l'interface utilisateur par défaut.
Désactivez l'interface utilisateur par défaut qui accompagne le TextChatService en définissant les propriétés ChatWindowConfiguration.Enabled et ChatInputBarConfiguration.Enabled sur false dans la fenêtre Propriétés de Studio.
Créez un remplacement pour la barre d'entrée de chat. C'est la zone de texte qui émet des messages lorsque l'utilisateur appuie sur Enter.
Créez un ScreenGui et placez-le en tant qu'enfant de StarterGui.
Créez un TextBox et placez-le dans le nouveau ScreenGui, puis repositionnez et redimensionnez selon vos besoins.
Créez un LocalScript et placez-le dans le nouveau TextBox.
Ajoutez le code suivant au LocalScript :
Clientlocal TextChatService = game:GetService("TextChatService")-- RBXGeneral est le canal public par défautlocal 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("Échec de l'envoi du message")end-- Les utilisateurs s'attendent à ce que la zone de saisie soit vidée après l'envoi d'un messagetextBox.Text = ""endend)
Créez un remplacement pour la fenêtre de chat. C'est le ScrollingFrame qui affiche les messages au fur et à mesure qu'ils sont reçus de TextChatService.MessageReceived. Cette étape crée également un UIListLayout pour organiser automatiquement les messages.
Créez un autre nouveau ScreenGui et placez-le en tant qu'enfant de StarterGui.
Créez un ScrollingFrame et placez-le dans le ScreenGui, puis repositionnez et redimensionnez selon vos besoins.
Créez un UIListLayout et placez-le dans le ScrollingFrame.
Créez un LocalScript et placez-le dans le ScrollingFrame.
Ajoutez le code suivant au LocalScript :
Clientlocal TextChatService = game:GetService("TextChatService")-- Fonction pour créer une nouvelle étiquette de texte pour chaque message reçulocal 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-- Commencez à écouter les messages entrantsTextChatService.MessageReceived:Connect(addMessageGui)
Testez votre jeu en envoyant des messages dans la barre d'entrée de chat. Vous devriez voir les messages apparaître dans la fenêtre de chat. Vous pouvez ensuite développer cet exemple en ajoutant des fonctionnalités telles que le focus sur le TextBox lorsqu'une touche est enfoncée ou en ajoutant des tags de chat.