Mit dem In-Experience-Text-Chat-System können Sie Blasen-Chat unterstützen, um anzeigbare Gesprächs-Blasen über Benutzer-Avataren und NPCs anzuzeigen. Blasen-Chat kann Ihr Erlebnis visuell immersiver machen und Benutzern helfen, Nachrichten und ihre Sprecher in einem kontextbezogenen Weise leicht zu identifizieren. Diese
Blasen-Chat aktivieren
Um Blasen-Chat in deiner Erlebniszu aktivieren:
Im Explorer-Fenster, wählen Sie BubbleChatConfiguration unter TextChatService.
Im Eigenschaften-Fenster, überprüfen Sie die Enabled-Checkbox.
Blasenanpassung
Nachdem Sie Blasen-Chat aktiviert haben, können Sie die Erscheinung und das Verhalten Ihrer Chat-Blasen anpassen, um Ihrem Erlebnis-Thema zu entsprechen. Verwenden Sie das Eigenschaften-Fenster von BubbleChatConfiguration für grundlegende Änderungen wie Textfarbe und Platzierung oder implementieren Sie ein 2>fortgeschrittenes2> Customization für Blasen-Hinter
Alternativ kannst du in LocalScript mit all deinen Anpassungs-Einstellungen ein StarterPlayerScripts hinzufügen. Dies ermöglicht es dem Engine, deine Anpassungen während der Laufzeit anzuwenden, indem die Einstellungen in Studio überschrieben werden. Es ist nützlich, spezielle Effekte auf Chat-Blasen anzuwenden, wenn Benutzer auf bestimmte Ereignisse oder Bedingungen reagieren.
Einfache Anpassung
Die folgende Tabelle zeigt die gemeinsamen Eigenschaften der Blasen-Chat-Anpassung. Für eine vollständige Liste der Anpassungseigenschaften, siehe BubbleChatConfiguration.
Eigenschaft | Beschreibung | Standard |
---|---|---|
BackgroundColor3 | Hintergrundfarbe der Blasen in Color3. | [250, 250, 250] |
FontFace | Font des Blasentexts. | BuilderSansMedium |
TextColor3 | Farbe des Bubble-Texts in Color3 . | [57, 59, 61] |
TextSize | Größe des Bubble-Texts. | 16 |
Erweiterte Anpassung
Für die erweiterte Anpassung deiner Blase füge UI-Objekte hinzu, die bestimmte Aspekte des Blasen-Aussehens als Kinder unter BubbleChatConfiguration darstellen, einschließlich:
- ImageLabel für Hintergrundbild-Einstellungen.
- UIGradient für die Hintergrundgradienten-Einstellungen.
- UICorner für die Kantenform von Blasen.
- UIPadding für den Pufferbereich zwischen dem Text und den Blasenkanten, relativ zur Standardgröße des übergeordnetes Teil.
Nach dem Hinzufügen dieser Objekte kannst du die Eigenschaften dieser Objekte, die auf Chat-Blasen angewendet sind, für die fortgeschrittene Blasen-Anpassung modifizieren. Das folgende Beispiel LocalScript fügt ein Hintergrundbild und scharfe Ecken hinzu:
Erweiterte Blasenanpassung
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
Die folgenden Tabellen umreißen die verfügbaren GuiObject und Appearance-Modifikator Kinder zusammen mit ihren gültigen Anpassungseigenschaften:
Eigenschaft | Beschreibung | Standard |
---|---|---|
Image | Asset-ID der Blasen-Hintergrundbild. | |
ImageColor3 | Farbe des Hintergrundbildes der Blase in Color3 . | [255, 255, 255] |
ImageRectOffset | Versetzt des Bildbereichs, der oben links in Pixeln angezeigt wird. | (0, 0) |
ImageRectSize | Größe des Bildbereichs, der in Pixeln angezeigt werden soll. Um das gesamte Bild anzuzeigen, setzen Sie entweder Dimension auf 0 . | (0, 0) |
ScaleType | Der Skaliertyp für das Rendern des Bildes, wenn seine Größe von der absoluten Größe der Blase abweicht. | Stretch |
SliceCenter | Schneide die Grenzen des Bildes, wenn das Bild ein 9-sliced-Bild ist. Gilt nur, wenn du ScaleType als Slice einstellen. | (0, 0, 0, 0) |
SliceScale | Skalieren Sie die Kante eines Elements, wenn das Bild ein 9-sliced-Bild ist. Gilt nur, wenn Sie ScaleType als Slice festlegen. | 1 |
TileSize | Größe des Bildes. Gilt nur, wenn du ScaleType als Tile festlegst. | (1, 0, 1, 0) |
Anpassung an Per-Bubble
Sie können Chat-Blasen-Verhaltensweisen individuell anpassen und modifizieren, basierend auf bestimmten Bedingungen, die Ihre allgemeinen Einstellungen überschreiben. Zum Beispiel können Sie Chat-Blasen verwenden, um NPCs und Benutzer zu unterscheiden, kritische Statuszu Highlight und spezielle Effekte auf Nachrichten mit vordefinierten Schlüsselwörtern anzuwenden.
Um die Per-Bubble-Anpassung einzurichten, fügen Sie einen Client-seitigen LocalScript mit BubbleChatMessageProperties hinzu, der das Matching von Eigenschaften von <
Die folgenden grundlegenden Anpassungseigenschaften sind für die Per-Bubble-Anpassung verfügbar:
Eigenschaft | Beschreibung | Standard |
---|---|---|
BackgroundColor3 | Hintergrundfarbe der Blasen in Color3. | (250, 250, 250) |
BackgroundTransparency | Hintergrund-Transparenz von Blasen. | 0.1 |
FontFace | Font des Blasentexts. | BuilderSansMedium |
TextColor3 | Farbe des Bubble-Texts in Color3 . | [57, 59, 61] |
TextSize | Größe des Bubble-Texts. | 16 |
Das folgende Beispiel fügt den Chat-Blasen von VIP-Benutzern einen besonderen Aspekt hinzu, indem es überprüft, ob ein Chat-Nachrichten-Anbieter das Attribut IsVIP hat:
VIP-Blasen
local TextChatService = game:GetService("TextChatService")
local Players = game:GetService("Players")
-- Ereignishändler, wenn eine neue Chat-Blase dem Erlebnis hinzugefügt wird
TextChatService.OnBubbleAdded = function(message: TextChatMessage, adornee: Instance)
-- Überprüfen Sie, ob die Chat-Nachricht eine TextQuelle (Sender) mit sich hat
if message.TextSource then
-- Erstellen Sie eine neue BubbleChatMessageProperties-Instanz, um die Chat-Blase anzupassen
local bubbleProperties = Instance.new("BubbleChatMessageProperties")
-- Holen Sie sich den Benutzer, der die Chat-Nachricht basierend auf ihrem Benutzer-ID gesendet hat
local player = Players:GetPlayerByUserId(message.TextSource.UserId)
if player:GetAttribute("IsVIP") then
-- Wenn der Spieler ein VIP ist, personalisieren Sie die Chat-Blasen-Eigenschaften
bubbleProperties.TextColor3 = Color3.fromHex("#F5CD30")
bubbleProperties.BackgroundColor3 = Color3.fromRGB(25, 27, 29)
bubbleProperties.FontFace = Font.fromEnum(Enum.Font.PermanentMarker)
end
return bubbleProperties
end
end
Alle fortgeschrittenen Anpassungsoptionen sind für die Per-Bubble-Anpassung verfügbar. Ähnlich wie die fortgeschrittene Anpassung für generelle Bubble, fügen Sie Instanzen hinzu, die Sie als Kinder von BubbleChatMessageProperties anpassen möchten. Das folgende Beispiel fügt einen speziellen Gradient-Effekt hinzu, der mit anderen Eigenschaften für Chat-Blasen von Benutzern mit nied
Niedrige Gesundheitsblasen
local TextChatService = game:GetService("TextChatService")
local Players = game:GetService("Players")
-- Ereignishändler, wenn eine neue Chat-Blase dem Erlebnis hinzugefügt wird
TextChatService.OnBubbleAdded = function(message: TextChatMessage, adornee: Instance)
-- Überprüfen Sie, ob die Chat-Nachricht eine TextQuelle (Sender) mit sich hat
if message.TextSource then
-- Holen Sie sich den Benutzer, der die Chat-Nachricht gesendet hat, indem Sie seine UserId verwenden
local player = Players:GetPlayerByUserId(message.TextSource.UserId)
-- Finde den Humanoid im Charakter des Benutzers
local humanoid = player.Character:FindFirstChildWhichIsA("Humanoid")
if humanoid and humanoid.Health < 25 then
-- Erstellen Sie eine neue BubbleChatMessageProperties-Instanz, um die Chat-Blase anzupassen
local bubbleProperties :BubbleChatMessageProperties = Instance.new("BubbleChatMessageProperties")
-- Anpassen Sie die Chat-Blasen-Eigenschaften für niedrige Gesundheitszustände
bubbleProperties.BackgroundColor3 = Color3.fromRGB(245, 245, 245)
bubbleProperties.TextColor3 = Color3.fromRGB(234, 51, 96)
bubbleProperties.TextSize = 20
bubbleProperties.FontFace = Font.fromEnum(Enum.Font.DenkOne)
-- Füge einen UIGradient als Kind hinzu, um den Gradient anzupassen
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
NPC-Blasen
Du kannst Chat-Blasen für nicht-playerische Charaktere (NPCs) anzeigen, indem du TextChatService:DisplayBubble() aufrufst, mit dem NPC-Charakter und der Nachricht als Parameter. Diese Blasen sind anpassbar, indem du den TextChatService.OnBubbleAdded -Rückruf verwendest, wie bei jeder anderen Chat-Blase.
TextChatService:DisplayBubble() nur auf Client-seitigen Skripts funktioniert, so stellen Sie sicher, dass Sie ein Class.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)