Chatfenster anpassen

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Das In-Game-Textchat -System, das von TextChatService unterstützt wird, ermöglicht es den Spielern, einfach miteinander zu kommunizieren und zu interagieren in Live-Spielen. Neben der Unterstützung des Standard-Textchats können Sie die Benutzeroberfläche anpassen.

Konfiguration des Chatfensters

Das gesamte Chatfenster besteht aus:

  • Chatfenster
  • Eingabezeile
  • Kanaltabs (optional)
Kernkomponenten des Textchatfensters.

Die Kanaltabs sind standardmäßig deaktiviert, und jede Komponente kann im Studio oder durch Skripting ein- oder ausgeschaltet werden:

Im Explorer -Fenster klicken Sie auf den TextChatService-Zweig und wählen Sie ChatWindowConfiguration, ChatInputBarConfiguration oder ChannelTabsConfiguration. Aktivieren oder deaktivieren Sie dann die Komponente im Eigenschaften -Fenster.

Wenn ChannelTabsConfiguration aktiviert ist, erscheint jeder Standard-TextChannel in einem Tab, wie in der folgenden Tabelle beschrieben. Außerdem erstellt jeder benutzerdefinierte TextChannel einen Tab, der dem Name-Eigenschaft des Kanals entspricht.

StandardkanalTab-Name
RBXGeneralAllgemein
RBXSystemAllgemein (in einen einzelnen Tab mit RBXGeneral zusammengeführt)
RBXTeamTeam
RBXWhisperBenutzername des anderen Spielers

FensterauAppearance

Das Aussehen des gesamten Chatfensters ist anpassbar über ChatWindowConfiguration.

ChatWindowConfiguration-Instanz in der Explorer-Hierarchie.
EigenschaftBeschreibungStandard
BackgroundColor3Color3 Hintergrundfarbe des Chatfensters.[25, 27, 29]
BackgroundTransparencyTransparenz des Hintergrunds des Chatfensters.0.3
EnabledOb das Standard-Chatfenster angezeigt werden soll. Auf false setzen, um es auszublenden.true
FontFaceFont des Textes im Chatfenster.BuilderSansMedium
TextColor3Color3 des Textes im Chatfenster.[255, 255, 255]
TextSizeGröße des Textes im Chatfenster.14
TextStrokeColor3Color3 der Kontur für den Text im Chatfenster.[0, 0, 0]
TextStrokeTransparencyTransparenz der Kontur für den Text im Chatfenster.0.5
HorizontalAlignmentHorizontale Ausrichtung des Chatfensters.Left
VerticalAlignmentVertikale Ausrichtung des Chatfensters.Top
HeightScaleHöhenmaßstab des Chatfensters relativ zur Bildschirmgröße.1
WidthScaleBreitenmaßstab des Chatfensters relativ zur Bildschirmgröße.1

Erscheinungsbild der Eingabezeile

Das Erscheinungsbild der Chat-Eingabezeile ist anpassbar über ChatInputBarConfiguration.

ChatInputBarConfiguration-Instanz in der Explorer-Hierarchie.
EigenschaftBeschreibungStandard
BackgroundColor3Color3 Hintergrundfarbe der Chat-Eingabezeile.[25, 27, 29]
BackgroundTransparencyTransparenz des Hintergrunds der Chat-Eingabezeile.0.2
FontFaceFont des Texteingabe im Chat.BuilderSansMedium
PlaceholderColor3Color3 des Platzhaltertextes in der Chat-Eingabe.[178, 178, 178]
TextColor3Color3 des von Spielern eingegebenen Chattextes.[255, 255, 255]
TextSizeGröße des Chattexteingabefeldes.14
TextStrokeColor3Color3 Konturfarbe des Chattexteingabfeldes.[0, 0, 0]
TextStrokeTransparencyTransparenz der Kontur für den Text der Eingabe.0.5
AutocompleteEnabledOb das Text-Chat-System Autovervollständigung für Emojis und Befehle anzeigt. Emojis werden durch Eingabe von : gefolgt von nicht-leeren Zeichen autocompleted, während Befehle durch Eingabe von / autocomplete werden.true
KeyboardKeyCodeZusätzliche Taste, die Spieler drücken können, um den Fokus auf die Standard-Chat-Eingabezeile zu legen.Slash

Erscheinungsbild der Kanaltabs

Das Erscheinungsbild der Kanaltabs ist anpassbar über ChannelTabsConfiguration.

ChannelTabsConfiguration-Instanz in der Explorer-Hierarchie.
EigenschaftBeschreibungStandard
BackgroundColor3Color3 Hintergrundfarbe der Kanaltabs.[25, 27, 29]
BackgroundTransparencyTransparenz des Hintergrunds der Kanaltabs.0
HoverBackgroundColor3Color3 Hintergrundfarbe der Tabs, wenn man darüber fährt.[125, 125, 125]
FontFaceFont für den Text in den Kanaltabs.BuilderSansBold
TextColor3Color3 des Textes in einem unselektierten Tab.[175, 175, 175]
SelectedTabTextColor3Color3 des Textes in einem ausgewählten Tab.[255, 255, 255]
TextSizeGröße des Textes in den Kanaltabs.18
TextStrokeColor3Color3 Konturfarbe des Textes in den Kanaltabs.[0, 0, 0]
TextStrokeTransparencyTransparenz der Kontur für den Text in den Kanaltabs.1

Nachrichten anpassen

Sie können das Erscheinungsbild von Chatnachrichtentexten und -präfixen mithilfe von ChatWindowMessageProperties und TextChatService.OnChatWindowAdded-Callbacks anpassen, ohne die vorhandene Benutzeroberfläche zu überschreiben. Die Anpassungsoptionen ermöglichen es Ihnen, das Erscheinungsbild von Chatnachrichten an das Thema Ihres Spiels anzupassen. Sie können auch Nachrichten aus verschiedenen Benutzergruppen sortieren oder hervorheben, indem Sie Präfixe einfärben oder Chat-Tags hinzufügen.

Benutzerfarben anpassen

Wenn ein Benutzer eine Chatnachricht sendet, wird deren DisplayName als Präfix der Nachricht angezeigt. Standardmäßig ist der Name jedes Benutzers entsprechend seinem Player.TeamColor eingefärbt, aber Sie können die Farben der Chatnamen mithilfe von ChatWindowMessageProperties und OnChatWindowAdded ändern. Das folgende LocalScript in StarterPlayerScripts weist jedem Benutzer eine vorgegebene Farbe zu, die zufällig aus einer Tabelle von RGB-Farben ausgewählt wird.

Farbiger Benutzername im Chatfenster.
LocalScript - Zufällige Benutzernamenfarben

local TextChatService = game:GetService("TextChatService")
local chatWindowConfiguration = TextChatService.ChatWindowConfiguration
local nameColors = {
Color3.fromRGB(255, 0, 0),
Color3.fromRGB(0, 255, 0),
Color3.fromRGB(0, 0, 255),
Color3.fromRGB(255, 255, 0),
}
TextChatService.OnChatWindowAdded = function(message: TextChatMessage)
local properties = chatWindowConfiguration:DeriveNewMessageProperties()
local textSource = message.TextSource
if textSource then
local index: number = (textSource.UserId % #nameColors) + 1
local randomColor: Color3 = nameColors[index]
properties.PrefixTextProperties = chatWindowConfiguration:DeriveNewMessageProperties()
properties.PrefixTextProperties.TextColor3 = randomColor
end
return properties
end

Sie können auch Farb- und Transparenzverläufe auf die Präfixe von Nachrichten anwenden, indem Sie UIGradient verwenden.

Gradient-Benutzername im Chatfenster.
Gradient-Benutzernamenfarben

local TextChatService = game:GetService("TextChatService")
local chatWindowConfiguration = TextChatService.ChatWindowConfiguration
local gradient = Instance.new("UIGradient")
gradient.Color = ColorSequence.new{
ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 0, 0)),
ColorSequenceKeypoint.new(0.5, Color3.fromRGB(255, 255, 0)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(255, 0, 255))
}
TextChatService.OnChatWindowAdded = function(message: TextChatMessage)
local properties = chatWindowConfiguration:DeriveNewMessageProperties()
local textSource = message.TextSource
if textSource then
properties.PrefixTextProperties = chatWindowConfiguration:DeriveNewMessageProperties()
gradient:Clone().Parent = properties.PrefixTextProperties
end
return properties
end

Anpassung von Rich-Text

Rich-Text Schriftfarb-Tags können verwendet werden, um Chatnachrichten zu formatieren, was hilfreich ist, wenn Sie spezifische Teile der Nachricht formatieren möchten. Beachten Sie, dass Rich-Text keine Verläufe unterstützt, aber das folgende Codebeispiel zeigt, wie Sie den Benutzernamen (gespeichert in TextChatMessage.PrefixText) in den Nachrichtentext verschieben und anschließend Rich-Text-Tags nur auf den Namen anwenden können.

Rich-Text-Anpassung des Benutzernamens im Chatfenster.
Rich-Text-Anpassung

local TextChatService = game:GetService("TextChatService")
local Players = game:GetService("Players")
local chatWindowConfiguration = TextChatService.ChatWindowConfiguration
local gradient = Instance.new("UIGradient")
gradient.Color = ColorSequence.new{
ColorSequenceKeypoint.new(0, Color3.fromRGB(255, 0, 0)),
ColorSequenceKeypoint.new(0.5, Color3.fromRGB(255, 255, 0)),
ColorSequenceKeypoint.new(1, Color3.fromRGB(255, 0, 255))
}
TextChatService.OnChatWindowAdded = function(message: TextChatMessage)
local properties = chatWindowConfiguration:DeriveNewMessageProperties()
if message.TextSource then
properties.PrefixText = "[VIP]"
properties.Text = string.format("<font color='#00ffff'>%s</font>", message.PrefixText) .. " " .. message.Text
properties.PrefixTextProperties = chatWindowConfiguration:DeriveNewMessageProperties()
gradient:Clone().Parent = properties.PrefixTextProperties
end
return properties
end

Nachrichten von Nicht-Spieler-Quellen

Wenn TextChatService.CreateDefaultTextChannels auf true gesetzt ist, ist einer der Standard-Textkanäle der RBXSystem-Kanal. Die Standard-Chat-Skripte zeigen automatisch Systemnachrichten in diesem Kanal an. Sie können das Erscheinungsbild dieser Nachrichten über den TextChannel.OnIncomingMessage-Callback anpassen.

Möglicherweise möchten Sie die Systemnachrichten anpassen oder ändern, die automatisch vom Chat-System ausgegeben werden. Da die Standard-Systemnachrichten lokalisiert für Benutzer sind, sollten Sie sie in Ihren Textchat-Callbacks über TextChatMessage.Metadata ansprechen, wenn Sie deren Erscheinungsbild anpassen möchten. Beispielsweise könnten Sie Metadata verwenden, um Systemnachrichten, Fehlermeldungen oder Nachrichten von bestimmten Systemen in Ihrem Spiel zu identifizieren.

System

Um eine Systemnachricht an den lokalen Spieler zu übermitteln, wie "Ansage" von einem öffentlichen Adresssystem, rufen Sie DisplaySystemMessage() vom Standard-RBXGeneral-Kanal mit einem Präfix vor dem Anzeigenamen des Spielers auf.

Client Script

local Players = game:GetService("Players")
local TextChatService = game:GetService("TextChatService")
local player = Players.LocalPlayer
local generalChannel: TextChannel = TextChatService:WaitForChild("TextChannels").RBXGeneral
local PREFIX = "[Guide] Willkommen "
-- "Systemnachricht" an Spieler mit ihrem Anzeigenamen angehängt senden
generalChannel:DisplaySystemMessage(PREFIX .. player.DisplayName)
Bild, das eine grundlegende Systemnachricht im Chatfenster zeigt.

NPC/Objekt

Sie können auch Dialoge von Nicht-Spielern gestalten und Chatblasen hinzufügen, um den Eindruck zu erwecken, dass Nachrichten von einem NPC oder Objekt innerhalb der 3D-Welt stammen.

Client Script

local TextChatService = game:GetService("TextChatService")
local Workspace = game:GetService("Workspace")
local generalChannel: TextChannel = TextChatService:WaitForChild("TextChannels").RBXGeneral
TextChatService.OnIncomingMessage = function(textChatMessage: TextChatMessage)
local properties = Instance.new("TextChatMessageProperties")
-- Überprüfen auf Systemnachrichten, die Metadaten enthalten
if not textChatMessage.TextSource and textChatMessage.Metadata ~= "" then
-- Präfix hinzufügen, um die Nachricht wie von einem Spieler gesendet aussehen zu lassen
properties.PrefixText = string.format("<font color='#%s'>%s: </font>", "#50C999", textChatMessage.Metadata)
-- Bubble-Chat hinzufügen
TextChatService:DisplayBubble(Workspace.Statue, textChatMessage.Text)
end
return properties
end
local message = "Willkommen! Ich werde Ihr Führer sein."
local speakerName = "Alter Ritter"
generalChannel:DisplaySystemMessage(message, speakerName)
Bild, das eine Ritterstatue-NPC zeigt, die eine Chatnachricht an das Chatfenster sendet, zusammen mit einer Chatblase über ihrem Kopf.
©2026 Roblox Corporation. Roblox, das Roblox-Logo und "Powering Imagination" gehören zu unseren eingetragenen und nicht eingetragenen Markenzeichen in den USA und anderen Ländern.