Text-Chat anpassen

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

Die In-Experience-Textchat -System, angetrieben von TextChatService, ermöglicht es Spielern, miteinander in Live-Erlebnissen leicht zu kommunizieren und zu sozialisieren. Zusätzlich zu der Unterstützung des Standardtextchats können Sie die Frontend-Benutzeroberfläche anpassen.

Chat-Fenster-Konfiguration

Das Gesamtkontextfenster besteht aus dem Chat-Fenster, einer Eingabeleiste und optionalen Kanal-Tabellen.

Core components of the text chat window.

Die Kanal-Tabs sind standardmäßig deaktiviert und jedes Komponente kann in Studio oder durch Scriptingein/ausgeschaltet werden:

Direkt im Studio-Fenster Explorer , erweitern Sie die TextChatService -Verzweigung und wählen Sie ChatWindowConfiguration , 1> Class.ChatInputBarConfiguration1> oder 4> Class.ChannelTabsConfiguration4> . Dann, in dem 7>Eigenschaften7>-Fenster, akt

Wenn ChannelTabsConfiguration aktiviert ist, wird jedes Standard TextChannel in einem Tab erscheinen, wie in der folgenden Tabelle beschrieben. Darüber hinaus erstellt jedes 1>benutzerdefinierte1> 4> Class.TextChannel4> einen Tab, der der Eigenschaft 7>Name|Name

Standard-KanalTab-Name
RBXGeneral Allgemein
RBXSystem Allgemein (kombiniert in einer einzigen Registerkarte mit RBXGeneral )
RBXTeam Team
RBXWhisper Benutzername eines anderen Spieler:in

Fenster-Aussehen

Das Aussehen des gesamten Chat-Fensters ist über ChatWindowConfiguration anpassbar.

ChatWindowConfiguration instance in Explorer hierarchy.
EigenschaftBeschreibungStandard
BackgroundColor3Color3 Hintergrundfarbe des Chat-Fensters.[25, 27, 29]
BackgroundTransparencyTransparenz des Hintergrunds des Chat-Fensters.0.3
FontFaceFont des Chat-Fenster-Texts.BuilderSansMedium
TextColor3Color3 des Chat-Fenster-Texts.[255, 255, 255]
TextSizeGröße des Chat-Fenstertexts.14
TextStrokeColor3Color3 des Stocks für den Chat-Fenster-Text.[0, 0, 0]
TextStrokeTransparencyTransparenz des Stocks für den Chat-Fenster-Text.0.5
HorizontalAlignmentHorizontale Ausrichtung des Chat-Fensters.Left
VerticalAlignmentVertikale Ausrichtung des Chat-Fensters.Top
HeightScaleHöhenskala des Chat-Fensters im Verhältnis zu der Bildschirmdimension.1
WidthScaleBreitenmaßstab des Chat-Fensters im Verhältnis zu der Bildschirmdimension.1

Aussehen der Eingabeleiste

Die Chat-Ansicht Eingabe-Bar ist über ChatInputBarConfiguration anpassbar.

ChatInputBarConfiguration instance in Explorer hierarchy.
EigenschaftBeschreibungStandard
BackgroundColor3Color3 Hintergrundfarbe der Chat-Eingabefelder.[25, 27, 29]
BackgroundTransparencyTransparenz des Hintergrunds der Chat-Eingabeleiste.0.2
FontFaceFont des Chat-Eingabentexts.BuilderSansMedium
PlaceholderColor3Color3 der Platzhalter-Chat-Eingabentext.[178, 178, 178]
TextColor3Color3 des eingegebenen Chat-Texts des Spielers.[255, 255, 255]
TextSizeGröße des Chat-Eingabetexts.14
TextStrokeColor3Color3 Strokes Farbe des Chat-Eingangstexts.[0, 0, 0]
TextStrokeTransparencyTransparenz des Strokes für Chat-Eingabentext.0.5
AutocompleteEnabledOb das Text-Chat-System Autovervollständigungsoptionen für Emojis und Befehle anzeigt. Emojis werden durch das Schreiben von : Folgend von nicht-Whitespace-Zeichen autovervollständigt, während Befehle durch das Schreiben von / autovervollständigt werden.true
KeyboardKeyCodeZusätzliche Schlüsselspieler können drücken, um sich auf die Standard-Chat-Eingabeleiste zu konzentrieren.Slash

Kanal-Tab-Aussehen

Das Aussehen der Kanal-Tabs ist über ChannelTabsConfiguration anpassbar.

ChannelTabsConfiguration instance in Explorer hierarchy.
EigenschaftBeschreibungStandard
BackgroundColor3Color3 Hintergrundfarbe der Kanal-Tabs.[25, 27, 29]
BackgroundTransparencyTransparenz der Hintergrund der Kanal-Tabs.0
HoverBackgroundColor3Color3 Hintergrundfarbe der Tabs, wenn mit dem Cursor über sie gesetzt wird.[125, 125, 125]
FontFaceFont für den Text in den Kanal-Tabellen.BuilderSansBold
TextColor3Color3 Text in einem nicht ausgewählten Tab.[175, 175, 175]
SelectedTabTextColor3Color3 Text in einer ausgewählten Registerkarte.[255, 255, 255]
TextSizeGröße des Textes in den Kanall-Tabs.18
TextStrokeColor3Color3 Textfarbe des Textes in den Kanal-Taben.[0, 0, 0]
TextStrokeTransparencyTransparenz der Stroke für Text in den Kanal-Tabs.1

Nachrichten anpassen

Du kannst die Aussehen von Chat-Nachrichten und Präfixen anpassen, indem du ChatWindowMessageProperties und TextChatService.OnChatWindowAdded-Callbacks verwendest, ohne die bestehende UI zu überschreiben. Die Anpassungsmöglichkeiten ermöglichen es dir, die Aussehen von Chat-Nachrichten anzupassen, um das Thema deines Erlebnisses zu entsprechen, und du

Benutzernamen färben

Wenn ein Benutzer eine Chat-Nachricht sendet, wird seine DisplayName als P

Colored user name in the chat window.
LocalScript - Zufällige Benutzername-Farben

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

Du kannst auch Farb- und Transparenzgrade für Farb-Nachrichten verwenden, indem du UIGradient verwendest.

Gradient user name in the chat window.
Farben für den Benutzernamen

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

Chat-Tags hinzufügen

Wenn deine Erfahrung Benutzer mit speziellen Attributen wie VIP-Status anbietet, kannst du Chat-Tags mit Chat-Tags in Klammern an die Front von Benutzer-Nachrichten anbringen, um ihre Nachrichten hervorzuheben. Das folgende Class.Local

VIP chat tag appended to user name in the chat window.
Chat-Tags anhängen

local TextChatService = game:GetService("TextChatService")
local Players = game:GetService("Players")
local chatWindowConfiguration = TextChatService.ChatWindowConfiguration
TextChatService.OnChatWindowAdded = function(message: TextChatMessage)
local properties = chatWindowConfiguration:DeriveNewMessageProperties()
if message.TextSource then
local player = Players:GetPlayerByUserId(message.TextSource.UserId)
if player:GetAttribute("IsVIP") then
properties.PrefixText = "[VIP] " .. message.PrefixText
properties.PrefixTextProperties = chatWindowConfiguration:DeriveNewMessageProperties()
properties.PrefixTextProperties.TextColor3 = Color3.fromRGB(255, 125, 50)
end
end
return properties
end

Reicher Text-Anpassung

Reicher Text Zeichenfarben-Tags können verwendet werden, um Chat-Nachrichtungen zu formatieren, hilfreich, wenn Sie Formulierung auf sehr spezifische Teile der Nachricht anwenden möchten. Beachten Sie, dass Richer Text keine Gradienten unterstützt, aber die folgende Codebeispiel zeigt, wie Sie den Benutzernamen (in TextChatMessage.PrefixText gespeichert) in den Nachrichtenkörper verschieben und dann Rich

Rich text customization of user name in the chat window.
Reicher 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-Player-Quellen senden

In bestimmten Design-Szenarien möchten Sie vielleicht den nicht-player-Dialog im Chat-Fenster anzeigen, z. B. "Sprech" von einem öffentlichen Adress-System oder einem nicht-player-Charakter.

System

Um eine unstylish-Systemnachricht an den lokalen Spieler:inzu liefern, rufe einfach DisplaySystemMessage() vom Standard- RBXGeneral -Kanal mit einem Präfix vor dem Displaynamen des Spieler:in.

Client-Skript

local Players = game:GetService("Players")
local TextChatService = game:GetService("TextChatService")
local player = Players.LocalPlayer
local generalChannel: TextChannel = TextChatService:WaitForChild("TextChannels").RBXGeneral
local PREFIX = "[Guide] Welcome "
-- Senden Sie "system Nachricht" an den Spieler mit ihrem Displaynamen appended
generalChannel:DisplaySystemMessage(PREFIX .. player.DisplayName)
Image showing a basic system message in the chat window.

NPC/Objekt

Du kannst auch den nicht-player-Dialog stilieren und Chat-Blasen hinzufügen, um es so aussehen zu lassen, als würden Nachrichten von einem NPC oder einem Objekt innerhalb der 3D-Welt gesendet.

Client-Skript

local TextChatService = game:GetService("TextChatService")
local generalChannel: TextChannel = TextChatService:WaitForChild("TextChannels").RBXGeneral
TextChatService.OnIncomingMessage = function(textChatMessage: TextChatMessage)
local properties = Instance.new("TextChatMessageProperties")
-- Überprüfen Sie Systemnachrichten, die Metadaten enthalten
if not textChatMessage.TextSource and textChatMessage.Metadata ~= "" then
-- Füge einen Präfix hinzu, um die Nachricht so auszusehen, als würde sie von einem Spieler:ingesendet
properties.PrefixText = string.format("<font color='#%s'>%s: </font>", "#50C999", textChatMessage.Metadata)
-- Blasen-Chat hinzufügen
TextChatService:DisplayBubble(workspace.Statue, textChatMessage.Text)
end
return properties
end
local message = "Welcome! I will be your guide."
local speakerName = "Ancient Knight"
generalChannel:DisplaySystemMessage(message, speakerName)
Image showing a knight statue NPC broadcasting a chat message to the chat window, along with a chat bubble above its head.