Dostosowywanie czatu dymkowego

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Za pomocą TextChatService możesz użyć czatu dymkowego do wyświetlania dostosowywanych dymków rozmowy nad awatarami użytkowników i NPC. Czat dymkowy może uczynić twoją grę bardziej wizualnie wciągającą i pomóc użytkownikom łatwo identyfikować wiadomości i ich nadawców w odpowiedni sposób. Ta funkcja jest szczególnie przydatna w grach, w których użytkownicy muszą skupić się na treści, jednocześnie komunikując się z innymi w mniej inwazyjny sposób.

Włącz czat dymkowy

Aby włączyć czat dymkowy w swojej grze:

  1. W oknie Eksploratora wybierz BubbleChatConfiguration w TextChatService.

  2. W oknie Właściwości zaznacz pole wyboru BubbleChatConfiguration.Enabled.

Dostosowywanie dymków

Po włączeniu czatu dymkowego możesz dostosować wygląd i zachowanie swoich dymków czatu, aby pasowały do tematyki twojej gry. Użyj okna Właściwości BubbleChatConfiguration do podstawowych zmian, takich jak kolor tekstu i odstępy, lub zaimplementuj zaawansowane dostosowanie dla obrazów tła dymków i innych wizualnych poprawek.

Alternatywnie, dodaj LocalScript w StarterPlayerScripts ze wszystkimi ustawieniami dostosowania. Umożliwia to silnikowi zastosowanie twoich dostosowań podczas czasu wykonywania, nadpisując ustawienia w Studio. Jest to przydatne do dodawania efektów specjalnych do dymków czatu, gdy użytkownicy wyzwalają określone zdarzenia lub warunki.

Podstawowe dostosowanie

Poniższa tabela przedstawia wspólne właściwości dostosowywania czatu dymkowego. Aby uzyskać pełną listę właściwości dostosowywania, zapoznaj się z BubbleChatConfiguration.

WłaściwośćOpisDomyślnie
BackgroundColor3Kolor tła dymków w Color3.[250, 250, 250]
FontFaceFont tekstu dymków.BuilderSansMedium
TextColor3Kolor tekstu w dymkach w Color3.[57, 59, 61]
TextSizeRozmiar tekstu w dymkach.16

Zaawansowane dostosowanie

Aby zaawansowanie dostosować swój dymek, dodaj obiekty UI reprezentujące określone aspekty wyglądu dymka jako dzieci pod BubbleChatConfiguration, w tym:

  • ImageLabel dla ustawień obrazu tła.
  • UIGradient dla ustawień gradientu tła.
  • UICorner dla kształtu rogów dymków.
  • UIPadding dla przestrzeni wielu między tekstem a krawędziami dymka, w odniesieniu do normalnego rozmiaru rodzica.

Po dodaniu tych obiektów możesz zmodyfikować właściwości tych obiektów, które są zastosowane do dymków czatu w celu zaawansowanego dostosowania dymków. Poniższy przykład LocalScript dodaje obraz tła i ostre rogi do dymków:

Zaawansowane dostosowanie dymków

local TextChatService = game:GetService("TextChatService")
local bubbleChatConfiguration = TextChatService.BubbleChatConfiguration
bubbleChatConfiguration.TailVisible = false
bubbleChatConfiguration.TextColor3 = Color3.fromRGB(220, 50, 50)
bubbleChatConfiguration.FontFace = Font.fromEnum(Enum.Font.LuckiestGuy)
local bubbleUICorner = bubbleChatConfiguration:FindFirstChildOfClass("UICorner")
if not bubbleUICorner then
bubbleUICorner = Instance.new("UICorner")
bubbleUICorner.Parent = bubbleChatConfiguration
end
bubbleUICorner.CornerRadius = UDim.new(0, 0)
local bubbleUIPadding = bubbleChatConfiguration:FindFirstChildOfClass("UIPadding")
if not bubbleUIPadding then
bubbleUIPadding = Instance.new("UIPadding")
bubbleUIPadding.Parent = bubbleChatConfiguration
end
bubbleUIPadding.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 then
bubbleImageLabel = Instance.new("ImageLabel")
bubbleImageLabel.Parent = bubbleChatConfiguration
end
bubbleImageLabel.Image = "rbxassetid://109157529833093"
bubbleImageLabel.ScaleType = Enum.ScaleType.Slice
bubbleImageLabel.SliceCenter = Rect.new(40, 40, 320, 120)
bubbleImageLabel.SliceScale = 0.5

Poniższe tabele przedstawiają dostępne dzieci GuiObject i modyfikatory wyglądu wraz z ich ważnymi właściwościami dostosowywania:

WłaściwośćOpisDomyślnie
ImageID zasobu obrazu tła dymka.
ImageColor3Kolor odcienia obrazu tła dymka w Color3.[255, 255, 255]
ImageRectOffsetOffset obszaru obrazu, który ma być wyświetlany od górnego lewego rogu, w pikselach.(0, 0)
ImageRectSizeRozmiar obszaru obrazu, który ma być wyświetlany w pikselach. Aby wyświetlić cały obraz, ustaw dowolny wymiar na 0.(0, 0)
ScaleTypeTyp skali do renderowania obrazu, gdy jego rozmiar różni się od absolutnego rozmiaru dymka.Stretch
SliceCenterGranice łez zdjęcia, jeśli obraz jest zdjęciem 9-krotnym. Dotyczy tylko, gdy ustawisz ScaleType jako Slice.(0, 0, 0, 0)
SliceScaleWspółczynnik skali krawędzi łez, jeśli obraz jest 9-krotnym obrazem. Dotyczy tylko, gdy ustawisz ScaleType jako Slice.1
TileSizeRozmiar kafelka obrazu. Dotyczy tylko, gdy ustawisz ScaleType jako Tile.(1, 0, 1, 0)

Dostosowywanie dymków na poziomie indywidualnym

Możesz indywidualnie stylizować i modyfikować zachowania dymków czatu w oparciu o określone warunki, aby nadpisać swoje ogólne ustawienia. Na przykład, możesz użyć dymków czatu, aby odróżnić NPC od użytkowników, podkreślić krytyczny stan zdrowia i zastosować efekty specjalne do wiadomości z wcześniej zdefiniowanymi słowami kluczowymi.

Aby ustawić dostosowanie na poziomie dymków, dodaj skrypt kliencki LocalScript używając BubbleChatMessageProperties, który nadpisuje odpowiadające właściwości BubbleChatConfiguration, oraz wywołanie zwrotne TextChatService.OnBubbleAdded, aby określić, jak dostosować każdy dymek. Callback dostarcza ci właściwość TextChatMessage, a także adornee, co pozwala zastosować dostosowanie na podstawie atrybutów związanych z użytkownikami, treścią tekstu czatu, właściwościami postaci użytkowników oraz wszelkimi specjalnymi warunkami, które chcesz zdefiniować.

Poniższe podstawowe właściwości dostosowywania są dostępne do dostosowania na poziomie dymków:

WłaściwośćOpisDomyślnie
BackgroundColor3Kolor tła dymków w Color3.(250, 250, 250)
BackgroundTransparencyPrzezroczystość tła dymków.0.1
FontFaceFont tekstu dymków.BuilderSansMedium
TextColor3Kolor tekstu dymków w Color3.[57, 59, 61]
TextSizeRozmiar tekstu dymków.16

Poniższy przykład dodaje specjalny wygląd do dymków czatu użytkowników VIP, sprawdzając, czy nadawca wiadomości czatu ma atrybut IsVIP:

Dymki VIP

local TextChatService = game:GetService("TextChatService")
local Players = game:GetService("Players")
-- Handler zdarzeń dla dodania nowego dymka czatu do gry
TextChatService.OnBubbleAdded = function(message: TextChatMessage, adornee: Instance)
-- Sprawdź, czy wiadomość czatu ma przypisane źródło tekstu (nadającego)
if message.TextSource then
-- Utwórz nową instancję BubbleChatMessageProperties, aby dostosować dymek czatu
local bubbleProperties = Instance.new("BubbleChatMessageProperties")
-- Uzyskaj użytkownika, który wysłał wiadomość czatu na podstawie jego UserId
local player = Players:GetPlayerByUserId(message.TextSource.UserId)
if player:GetAttribute("IsVIP") then
-- Jeśli gracz jest VIP, dostosuj właściwości dymka czatu
bubbleProperties.TextColor3 = Color3.fromHex("#F5CD30")
bubbleProperties.BackgroundColor3 = Color3.fromRGB(25, 27, 29)
bubbleProperties.FontFace = Font.fromEnum(Enum.Font.PermanentMarker)
end
return bubbleProperties
end
end

Wszystkie zaawansowane opcje dostosowywania są dostępne dla dostosowywania dymków na poziomie indywidualnym. Podobnie jak w przypadku zaawansowanego dostosowania ogólnych dymków, dodaj instancje, które chcesz dostosować, jako dzieci BubbleChatMessageProperties. Poniższy przykład dodaje specjalny efekt gradientu w połączeniu z innymi właściwościami do dymków czatu użytkowników o niskim stanie zdrowia, sprawdzając właściwość Humanoid.Health postaci nadawców wiadomości czatu:

Dymki o niskim zdrowiu

local TextChatService = game:GetService("TextChatService")
local Players = game:GetService("Players")
-- Handler zdarzeń dla dodania nowego dymka czatu do gry
TextChatService.OnBubbleAdded = function(message: TextChatMessage, adornee: Instance)
-- Sprawdź, czy wiadomość czatu ma przypisane źródło tekstu (nadającego)
if message.TextSource then
-- Uzyskaj użytkownika, który wysłał wiadomość czatu na podstawie jego UserId
local player = Players:GetPlayerByUserId(message.TextSource.UserId)
-- Znajdź humanoida w postaci użytkownika
local humanoid = player.Character:FindFirstChildWhichIsA("Humanoid")
if humanoid and humanoid.Health < 25 then
-- Utwórz nową instancję BubbleChatMessageProperties, aby dostosować dymek czatu
local bubbleProperties :BubbleChatMessageProperties = Instance.new("BubbleChatMessageProperties")
-- Dostosuj właściwości dymka czatu dla niskiej wartości zdrowia
bubbleProperties.BackgroundColor3 = Color3.fromRGB(245, 245, 245)
bubbleProperties.TextColor3 = Color3.fromRGB(234, 51, 96)
bubbleProperties.TextSize = 20
bubbleProperties.FontFace = Font.fromEnum(Enum.Font.DenkOne)
-- Dodaj UIGradient jako dziecko, aby dostosować gradient
local uiGradient : UIGradient = Instance.new("UIGradient")
uiGradient.Color = ColorSequence.new(Color3.fromRGB(110, 4, 0), Color3.fromRGB(0, 0, 0))
uiGradient.Rotation = 90
uiGradient.Parent = bubbleProperties
return bubbleProperties
end
end
end

Ręczne wyświetlanie dymków

Możesz chcieć wyświetlić dymek czatu, gdy gracze nie wysłali wiadomości, na przykład w przypadku NPC. Użyj metody TextChatService:DisplayBubble(), aby ręcznie wyświetlić dymek czatu.

Dostosowanie tych dymków jest takie samo jak dostosowanie dymków, które są automatycznie wyświetlane, gdy gracze wysyłają wiadomości przez TextChannels, używając wywołania zwrotnego TextChatService.OnBubbleAdded.

Dymki NPC

Wyświetl dymki czatu dla postaci niegrających (NPC), wywołując TextChatService:DisplayBubble(character, message), z postacią NPC i wiadomością jako parametrami. Te dymki można dostosować przy użyciu wywołania zwrotnego TextChatService.OnBubbleAdded, tak jak każdy inny dymek czatu.

TextChatService:DisplayBubble() działa tylko w skryptach po stronie klienta, więc upewnij się, że używasz Script z RunContext ustawionym na Enum.RunContext.Client, lub LocalScript w odpowiednim kontenerze, takim jak StarterPlayerScripts. Jeśli do NPC dołączysz ProximityPrompt, skrypt do wyświetlania dymka czatu może wyglądać tak:


local TextChatService = game:GetService("TextChatService")
local Workspace = game:GetService("Workspace")
local prompt = Workspace.SomeNPC.ProximityPrompt
local head = prompt.Parent:WaitForChild("Head")
prompt.Triggered:Connect(function()
TextChatService:DisplayBubble(head, "Witaj świecie!")
end)
©2026 Roblox Corporation. Nazwa Roblox, logo Roblox oraz hasło „Powering Imagination” należą do naszych zarejestrowanych i niezarejestrowanych znaków towarowych na terenie Stanów Zjednoczonych oraz w innych krajach.