Czat bąbelkowy

*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.

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:

  1. 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śćOpisDomyślny
BackgroundColor3Kolor tła bąbelków w Color3 .[250, 250, 250]
FontFaceFont kreszty tekstu bąbelkowego.BuilderSansMedium
TextColor3Kolor tekstu bąbelkowego w Color3 .[57, 59, 61]
TextSizeRozmiar 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.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://6733332557"
bubbleImageLabel.ScaleType = Enum.ScaleType.Slice
bubbleImageLabel.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śćOpisDomyślny
ImageIdentyfikator zasobu obrazu tła bąbelkowego.
ImageColor3Kolor nasycenia obrazu tła bąbelkowego w Color3 .[255, 255, 255]
ImageRectOffsetOdległość obszaru obrazu do wyświetlenia z góry lewej w pikselach.(0, 0)
ImageRectSizeRozmiar obszaru obrazu do wyświetlenia w pikselach. Aby wyświetlić cały obraz, ustaw dowolną wartość wymiaru na 0 .(0, 0)
ScaleTypeTyp skali do renderowania obrazu, gdy jego rozmiar jest inny od wielkości absolutnej bąbelka.Stretch
SliceCenterObszyć granice obszaru obrazu, jeśli obraz jest obrazem 9-sliced. Ma to zastosowanie tylko w przypadku ustawienia ScaleType jako Slice.(0, 0, 0, 0)
SliceScaleSkala 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
TileSizeRozmiar 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śćOpisDomyślny
BackgroundColor3Kolor tła bąbelków w Color3 .(250, 250, 250)
BackgroundTransparencyPrzezroczystość tła bąbelków.0.1
FontFaceFont kreszty tekstu bąbelkowego.BuilderSansMedium
TextColor3Kolor tekstu bąbelkowego w Color3 .[57, 59, 61]
TextSizeRozmiar 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)