TextChatService ile, kullanıcı avatarlarının ve NPC'lerin üstünde özelleştirilebilir konuşma baloncuklarını göstermek için baloncuk sohbetini kullanabilirsiniz. Baloncuk sohbeti, oyununuzu daha görsel olarak sürükleyici hale getirebilir ve kullanıcıların mesajları ve konuşmacıları bağlama açısından uygun bir şekilde kolayca tanımlamalarına yardımcı olabilir. Bu özellik, kullanıcıların içeriklere odaklanması gereken ve aynı zamanda diğerleriyle daha az rahatsız edici bir şekilde iletişim kurması gereken oyunlar için özellikle faydalıdır.
Baloncuk sohbetini etkinleştirin
Oyununuza baloncuk sohbetini etkinleştirmek için:
Explorer penceresinde, TextChatService altında BubbleChatConfiguration öğesini seçin.

Properties penceresinde, BubbleChatConfiguration.Enabled onay kutusunu işaretleyin.

Baloncuk özelleştirmesi
Baloncuk sohbetini etkinleştirdikten sonra, sohbet baloncuklarınızın görünümünü ve davranışını oyununuzun temasına uyacak şekilde özelleştirebilirsiniz. Metin rengi ve boşluk gibi temel değişiklikler için BubbleChatConfiguration'ın Properties penceresini kullanın veya baloncuk arka plan görüntüleri ve diğer görsel ayarlamalar için gelişmiş özelleştirme uygulayın.

Alternatif olarak, tüm özelleştirme ayarlarınızı içeren bir LocalScript ekleyin StarterPlayerScripts'te. Bu, motorun çalışma zamanında özelleştirmelerinizi uygulamasını sağlar ve Studio'daki ayarların üzerine yazar. Kullanıcılar belirli olayları veya koşulları tetiklediğinde, sohbet baloncuklarına özel efektler eklemek için faydalıdır.
Temel özelleştirme
Aşağıdaki tablo, yaygın baloncuk sohbeti özelleştirme özelliklerini göstermektedir. Özelleştirme özelliklerinin tam listesi için BubbleChatConfiguration'a bakın.
| Özellik | Açıklama | Varsayılan |
|---|---|---|
| BackgroundColor3 | Baloncukların arka plan rengi Color3 cinsinden. | [250, 250, 250] |
| FontFace | Baloncuk metninin Font'i. | BuilderSansMedium |
| TextColor3 | Baloncuk metninin rengi Color3 cinsinden. | [57, 59, 61] |
| TextSize | Baloncuk metninin boyutu. | 16 |
Gelişmiş özelleştirme
Baloncuklarınızın gelişmiş özelleştirmesi için, baloncuk görünümünün belirli yönlerini temsil eden UI nesnelerini BubbleChatConfiguration altında alt nesne olarak ekleyin:
- Arka plan görüntüsü ayarları için ImageLabel.
- Arka plan gradyan ayarları için UIGradient.
- Baloncukların köşe şekli için UICorner.
- Metin ile baloncuk kenarları arasındaki boşluk alanı için UIPadding, ebeveynin normal boyutuna göre.
Bu nesneleri ekledikten sonra, baloncuklar için uygulanabilir olan bu nesnelerin özelliklerini özelleştirebilirsiniz. Aşağıdaki örnek LocalScript, baloncuklara arka plan resmi ve keskin köşeler ekliyor:
Gelişmiş Baloncuk Özelleştirmesilocal 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://109157529833093"bubbleImageLabel.ScaleType = Enum.ScaleType.SlicebubbleImageLabel.SliceCenter = Rect.new(40, 40, 320, 120)bubbleImageLabel.SliceScale = 0.5

Aşağıdaki tablolar, mevcut GuiObject ve görünüm modifikatorü alt nesnelerini ve geçerli özelleştirme özelliklerini özetlemektedir:
| Özellik | Açıklama | Varsayılan |
|---|---|---|
| Image | Baloncuk arka plan görüntüsünün varlık kimliği. | |
| ImageColor3 | Baloncuk arka plan görüntüsünün renk tonu Color3 cinsinden. | [255, 255, 255] |
| ImageRectOffset | Görüntü alanının üst-sol köşeden gösterileceği ofset, piksel cinsinden. | (0, 0) |
| ImageRectSize | Gösterilecek görüntü alanının boyutu, piksel cinsinden. Tüm resmi göstermek için bir boyutu 0 olarak ayarlayın. | (0, 0) |
| ScaleType | Görüntünün boyutu baloncuk boyutundan farklı olduğunda görüntüyü işlemek için ölçek türü. | Stretch |
| SliceCenter | Resim 9 dilimlik bir resimse dilim sınırları. Sadece ScaleType'ı Slice olarak ayarladığınızda uygulanabilir. | (0, 0, 0, 0) |
| SliceScale | Resim 9 dilimlik bir resimse dilim kenarlarının ölçek oranı. Sadece ScaleType'ı Slice olarak ayarladığınızda uygulanabilir. | 1 |
| TileSize | Görüntünün döşeme boyutu. Sadece ScaleType'ı Tile olarak ayarladığınızda uygulanabilir. | (1, 0, 1, 0) |
Her baloncuk için özelleştirme
Belirli koşullara dayanarak sohbet baloncuklarını ayrı ayrı stillendirebilir ve davranışlarını değiştirebilirsiniz. Örneğin, sohbet baloncuklarını NPC'ler ve kullanıcıları ayırt etmek için kullanabilir, kritik sağlık durumunu vurgulayabilir ve belirli anahtar kelimeleri içeren mesajlara özel efektler uygulayabilirsiniz.
Her baloncuk için özelleştirmeyi ayarlamak üzere, BubbleChatMessageProperties'i kullanan bir istemci tarafı LocalScript ekleyin. Bu, BubbleChatConfiguration ile eşleşen özellikleri geçersiz kılar ve her baloncuğu nasıl özelleştireceğinizi belirtmek için TextChatService.OnBubbleAdded geri çağrısını kullanır. Geri çağırma, size TextChatMessage özelliğini ve adornee'yi temin eder, böylece kullanıcılarla ilişkili değişkenler, sohbet metni içeriği, kullanıcı karakteri özellikleri ve tanımlamak istediğiniz herhangi bir özel koşula dayalı özelleştirmeyi uygulayabilirsiniz.
Her baloncuk için özelleştirmede mevcut olan aşağıdaki temel özelleştirme özellikleri vardır:
| Özellik | Açıklama | Varsayılan |
|---|---|---|
| BackgroundColor3 | Baloncukların arka plan rengi Color3 cinsinden. | (250, 250, 250) |
| BackgroundTransparency | Baloncukların arka plan saydamlığı. | 0.1 |
| FontFace | Baloncuk metninin Font'i. | BuilderSansMedium |
| TextColor3 | Baloncuk metninin rengi Color3 cinsinden. | [57, 59, 61] |
| TextSize | Baloncuk metninin boyutu. | 16 |
Aşağıdaki örnek, bir sohbet mesajı gönderenin IsVIP niteliğine sahip olup olmadığını kontrol ederek VIP kullanıcıların sohbet baloncuklarına özel bir görünüm ekler:
VIP Baloncukları
local TextChatService = game:GetService("TextChatService")
local Players = game:GetService("Players")
-- Oyun ortamına yeni bir sohbet baloncuğu eklendiğinde olay işleyici
TextChatService.OnBubbleAdded = function(message: TextChatMessage, adornee: Instance)
-- Sohbet mesajının ona ait bir TextSource (gönderen) olup olmadığını kontrol et
if message.TextSource then
-- Sohbet baloncuklarını özelleştirmek için yeni bir BubbleChatMessageProperties örneği oluştur
local bubbleProperties = Instance.new("BubbleChatMessageProperties")
-- Mesajı gönderenin UserId'sine göre kullanıcıyı al
local player = Players:GetPlayerByUserId(message.TextSource.UserId)
if player:GetAttribute("IsVIP") then
-- Kullanıcı VIP ise, sohbet balonu özelliklerini özelleştir
bubbleProperties.TextColor3 = Color3.fromHex("#F5CD30")
bubbleProperties.BackgroundColor3 = Color3.fromRGB(25, 27, 29)
bubbleProperties.FontFace = Font.fromEnum(Enum.Font.PermanentMarker)
end
return bubbleProperties
end
end
Tüm gelişmiş özelleştirme seçenekleri, her baloncuk için özelleştirme için de mevcuttur. Genel baloncuklar için gelişmiş özelleştirmeye benzer şekilde, özelleştirmek istediğiniz örnekleri BubbleChatMessageProperties altına çocuk olarak ekleyin. Aşağıdaki örnek, sohbet mesajı gönderenlerin Humanoid.Health özelliğini kontrol ederek düşük sağlık durumuna sahip kullanıcıların sohbet baloncuklarına özel bir gradyan etkisi ve diğer özellikler ekler:
Düşük Sağlık Baloncukları
local TextChatService = game:GetService("TextChatService")
local Players = game:GetService("Players")
-- Oyun ortamına yeni bir sohbet baloncuğu eklendiğinde olay işleyici
TextChatService.OnBubbleAdded = function(message: TextChatMessage, adornee: Instance)
-- Sohbet mesajının ona ait bir TextSource (gönderen) olup olmadığını kontrol et
if message.TextSource then
-- Mesajı gönderen kullanıcının UserId'sini kullanarak kullanıcıyı al
local player = Players:GetPlayerByUserId(message.TextSource.UserId)
-- Kullanıcının karakterinde humanoid'i bul
local humanoid = player.Character:FindFirstChildWhichIsA("Humanoid")
if humanoid and humanoid.Health < 25 then
-- Sohbet balonunu özelleştirmek için yeni bir BubbleChatMessageProperties örneği oluştur
local bubbleProperties :BubbleChatMessageProperties = Instance.new("BubbleChatMessageProperties")
-- Düşük sağlık durumu için sohbet balonu özelliklerini özelleştir
bubbleProperties.BackgroundColor3 = Color3.fromRGB(245, 245, 245)
bubbleProperties.TextColor3 = Color3.fromRGB(234, 51, 96)
bubbleProperties.TextSize = 20
bubbleProperties.FontFace = Font.fromEnum(Enum.Font.DenkOne)
-- Gradyanı özelleştirmek için bir UIGradient ekle
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
Baloncukları manuel olarak gösterin
Oyuncular bir mesaj göndermediğinde, örneğin NPC'ler için bir sohbet baloncuğu göstermek isteyebilirsiniz. Bir sohbet baloncuğunu manuel olarak göstermek için TextChatService:DisplayBubble() yöntemini kullanın.
Bu baloncukların özelleştirilmesi, TextChatService.OnBubbleAdded geri çağrısını kullanarak oyuncular mesaj gönderdiklerinde otomatik olarak gösterilen baloncukların özelleştirilmesiyle aynıdır.
NPC baloncukları
NPC'ler için sohbet baloncuklarını göstermek için TextChatService:DisplayBubble(character, message) çağrısında bulunun; NPC karakteri ile mesajı parametre olarak kullanın. Bu baloncuklar, diğer sohbet baloncukları gibi TextChatService.OnBubbleAdded geri çağrısını kullanarak özelleştirilebilir.
TextChatService:DisplayBubble() yalnızca istemci tarafı scriptlerinde çalışır, bu nedenle RunContext'i Enum.RunContext.Client olarak ayarlanan bir Script veya LocalScript kullandığınızdan emin olun; uygun bir kap içinde, örneğin StarterPlayerScripts gibi. NPC'ye bir ProximityPrompt bağladığınızda, bir sohbet baloncuğu göstermek için bir script aşağıdaki gibi görünebilir:
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, "Merhaba dünya!")
end)