Z systemem czatu tekstowego w doświadczeniu możesz wspierać czat bąbelkowy, aby wyświetlić niestandardowe czaty bąbelkowe nad wizualnie istotnymi wiadomościami i NPC. Bąbelkowy czat może uczynić twoją doświadczenie bardziej wizualnie przyciągające i pomóc użytk
Włączanie czatu Czat
Aby włączyć czat bąbelkowy w swoim doświadczeniu:
W oknie Explorer, wybierz BubbleChatConfiguration pod TextChatService.
W Okieniu Proprietści, sprawdź Enabled checkbox.
Personalizacja bąbelków
Po włączeniu czatu bąbelkowego możesz dostosować wygląd i zachowanie swoich bąbelków czatu, aby pasowały do twojego motywu doświadczenia. Użyj okna Właściwości z BubbleChatConfiguration dla podstawowych zmian, takich jak kolor tekstu i rozmieszczenie, lub wdrożenie 2>zaawansowanej2> personaliz
Alternatywnie możesz dodać LocalScript w StarterPlayerScripts z wszystkimi ustawieniami personalizacji. To pozwala silnikowi zastosować twoje ustawienia podczas uruchomienia, a tym samym zmienić ustawienia w Studio. Użyteczne jest dla dodawania efektów specjalnych do bąbelków czatu, gdy użytkownicy wykonują pewne wydarzenia lub warunki.
Podstawowe dostosowanie
Poniższy tabela pokazuje częste właściwości dostosowywania czatu bąbelkowego. Dla pełnej listy właściwości dostosowywania, zobacz BubbleChatConfiguration .
Własność | Opis | Domyślny |
---|---|---|
BackgroundColor3 | Kolor tła bąbelków w Color3 . | [250, 250, 250] |
FontFace | Font kreszty tekstu bąbelkowego. | BuilderSansMedium |
TextColor3 | Kolor tekstu bąbelkowego w Color3 . | [57, 59, 61] |
TextSize | Rozmiar tekstu bąbelkowego. | 16 |
Zaawansowana personalizacja
Dla zaawansowanej personalizacji swojego bąbelka dodaj obiekty UI przedstawiające pewne aspekty wyglądu bąbelka jako dzieci pod BubbleChatConfiguration , w tym:
- ImageLabel dla ustawień obrazu tła.
- UIGradient dla ustawieńgradientu tła.
- UICorner dla kształtu kąta bąbelków.
- UIPadding dla przestrzeni między tekstem a krawędziami bąbelków, w stosunku do rozmiaru normalnego rodzica.
Po dodaniu tych obiektów możesz zmieniać właściwości tych obiektów stosujących się do czatów dla zaawansowanej personalizacji bąbelków. Poniższy przykład LocalScript dodaje obraz tła i ostrych kątów do bąbelków:
Zaawansowana personalizacja bąbelków
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
Poniższe tabelki wyjaśniają dostępne GuiObject i zmienniki wyglądu dzieci wraz ze swoimi ważnymi parami cech personalizacji:
Własność | Opis | Domyślny |
---|---|---|
Image | Identyfikator zasobu obrazu tła bąbelkowego. | |
ImageColor3 | Kolor nasycenia obrazu tła bąbelkowego w Color3 . | [255, 255, 255] |
ImageRectOffset | Odległość obszaru obrazu do wyświetlenia z góry lewej w pikselach. | (0, 0) |
ImageRectSize | Rozmiar obszaru obrazu do wyświetlenia w pikselach. Aby wyświetlić cały obraz, ustaw dowolną wartość wymiaru na 0 . | (0, 0) |
ScaleType | Typ skali do renderowania obrazu, gdy jego rozmiar jest inny od wielkości absolutnej bąbelka. | Stretch |
SliceCenter | Obszyć granice obszaru obrazu, jeśli obraz jest obrazem 9-sliced. Ma to zastosowanie tylko w przypadku ustawienia ScaleType jako Slice. | (0, 0, 0, 0) |
SliceScale | Skala skalowania krawędzi plików jeśli obraz jest plikiem 9-sliced. Skala ta dotyczy tylko plików, dla których ustawiono ScaleType jako Slice. | 1 |
TileSize | Rozmiar płytki obrazu. Ma to zastosowanie tylko w przypadku ustawienia ScaleType jako Tile. | (1, 0, 1, 0) |
Dostosowywanie za pomocą pęcherzy
Możesz indywidualnie stylować i modyfikować zachowania czatu bąbelkowego w oparciu o określone warunki, które przekazują twoje ogólne ustawienia. Na przykład możesz używać czatów bąbelkowych, aby odróżnić NPC i użytkowników, zaznaczyć krytyczny statuszdrowia i zastosować efekty specjalne do wiadomości z wcześniej zdefiniowanymi kluczami.
Aby ustawić niestandardową personalizację pęcherzyków, dodaj stronę klienta LocalScript używając BubbleChatMessageProperties, co przeciwdziała wła
Następujące podstawowe właściwości dostępne dla dostosowania do bąbelków:
Własność | Opis | Domyślny |
---|---|---|
BackgroundColor3 | Kolor tła bąbelków w Color3 . | (250, 250, 250) |
BackgroundTransparency | Przezroczystość tła bąbelków. | 0.1 |
FontFace | Font kreszty tekstu bąbelkowego. | BuilderSansMedium |
TextColor3 | Kolor tekstu bąbelkowego w Color3 . | [57, 59, 61] |
TextSize | Rozmiar tekstu bąbelkowego. | 16 |
Poniższy przykład dodaje specjalny wygląd do bąbelków czatu użytkowników VIP, sprawdzając, czy nadawca wiadomości czatu ma atrybut IsVIP :
Prążki VIP
local TextChatService = game:GetService("TextChatService")
local Players = game:GetService("Players")
-- Przycisk wtyczki dla nowej burzy czatu do doświadczenia
TextChatService.OnBubbleAdded = function(message: TextChatMessage, adornee: Instance)
-- Sprawdź, czy wiadomość czatu ma związany z nim źródło tekstu (wysyłacz)
if message.TextSource then
-- Utwórz nową instancję BubbleChatMessageProperties, aby dostosować bąbel czat
local bubbleProperties = Instance.new("BubbleChatMessageProperties")
-- Zdobądź użytkownika, który wysłał wiadomość czatu w oparciu o ich UserId
local player = Players:GetPlayerByUserId(message.TextSource.UserId)
if player:GetAttribute("IsVIP") then
-- Jeśli gracz jest VIP, dostosuj właściwości 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 personalizacji są dostępne dla personalizacji pęcherzyków. Podobnie jak zaawansowana personalizacja dla ogólnych pęcherzyków, dodaj instancje, które chcesz dostosować jako dzieci BubbleChatMessageProperties . Następny przykład dodaje efektgradientu specjalny wraz z innymi właściwościami do pęcherzyków pęcherzy
Niskie zdrowotne bąbelki
local TextChatService = game:GetService("TextChatService")
local Players = game:GetService("Players")
-- Przycisk wtyczki dla nowej burzy czatu do doświadczenia
TextChatService.OnBubbleAdded = function(message: TextChatMessage, adornee: Instance)
-- Sprawdź, czy wiadomość czatu ma związany z nim źródło tekstu (wysyłacz)
if message.TextSource then
-- Zdobądź użytkownika, który wysłał wiadomość czatu używając ich UserId
local player = Players:GetPlayerByUserId(message.TextSource.UserId)
-- Znajdź humanoid w postaci użytkownika
local humanoid = player.Character:FindFirstChildWhichIsA("Humanoid")
if humanoid and humanoid.Health < 25 then
-- Utwórz nową instancję BubbleChatMessageProperties, aby dostosować bąbel czat
local bubbleProperties :BubbleChatMessageProperties = Instance.new("BubbleChatMessageProperties")
-- Dostosuj właściwości bąbelka czatu dla niskiego stanu 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.Parent = bubbleProperties
uiGradient.Rotation = 90
return bubbleProperties
end
end
end
Prążynki NPC
Możesz wyświetlać bąbelki czatu dla postaci nie graczy (NPC), przez wzywanie TextChatService:DisplayBubble(), z parametrem postaci NPC i wiadomością. Te bąbelki są dostosowywalne używając TextChatService.OnBubbleAdded zwrotu.
TextChatService:DisplayBubble() tylko działa na skryptach strony klienta, więc upewnij się, że używasz
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)