Dengan Layanan Obrolan Teks, Anda dapat menggunakan obrolan gelembung untuk menampilkan gelembung obrolan khusus yang dapat disesuaikan di atas avatar pengguna dan NPC.Obrolan gelembung dapat membuat pengalaman Anda lebih visual dan membantu pengguna dengan mudah mengidentifikasi pesan dan pembicara mereka dalam cara yang relevan secara konteks.Fitur ini sangat berguna untuk pengalaman di mana pengguna perlu fokus pada konten sementara berkomunikasi dengan orang lain dengan cara yang kurang mengganggu.
Aktifkan obrolan gelembung
Untuk mengaktifkan obrolan gelembung dalam pengalaman Anda:
Di jendela Explorer, pilih BubbleChatConfiguration di bawah TextChatService.
Di jendela Properti, periksa kotak centang BubbleChatConfiguration.Enabled.
Kustomisasi gelembung
Setelah mengaktifkan obrolan gelembung, Anda dapat menyesuaikan penampilan dan perilaku gelembung obrolan Anda untuk sesuai dengan tema pengalaman Anda.Gunakan jendela Properti dari BubbleChatConfiguration untuk perubahan dasar seperti warna teks dan spasi, atau implementasikan kustomisasi lanjutan untuk gambar latar balon dan penyesuaian visual lainnya.

Alternatifnya, tambahkan LocalScript di StarterPlayerScripts dengan semua pengaturan kustomisasi Anda.Ini memungkinkan mesin untuk menerapkan kustomisasi Anda selama runtime, menggantikan pengaturan di Studio.Ini berguna untuk menambahkan efek khusus ke gelembung obrolan saat pengguna memicu peristiwa atau kondisi tertentu.
Kustomisasi dasar
Tabel berikut menunjukkan properti kustomisasi obrolan gelembung umum. Untuk daftar lengkap properti kustomisasi, lihat BubbleChatConfiguration .
Propinsi | Deskripsi | Standar |
---|---|---|
BackgroundColor3 | Warna latar belakang gelembung di Color3 . | [250, 250, 250] |
FontFace | Font dari teks gelembung. | BuilderSansMedium |
TextColor3 | Warna teks gelembung di Color3 . | [57, 59, 61] |
TextSize | Ukuran teks gelembung. | 16 |
Kustomisasi lanjutan
Untuk kustomisasi lanjutan gelembung Anda, tambahkan objek UI yang mewakili aspek tertentu dari penampilan gelembung sebagai anak di bawah BubbleChatConfiguration, termasuk:
- ImageLabel untuk pengaturan gambar latar belakang.
- UIGradient untuk pengaturan gradien latar belakang.
- UICorner untuk bentuk sudut gelembung.
- UIPadding untuk ruang pengisi di antara teks dan tepi gelembung, relatif terhadap ukuran normal orang tua.
Setelah menambahkan objek ini, Anda dapat mengubah properti objek ini yang berlaku untuk gelembung obrolan untuk kustomisasi gelembung lanjutan.Contoh berikut LocalScript menambahkan gambar latar belakang dan sudut tajam ke gelembung:
Kustomisasi Gelembung Lanjutan
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://109157529833093"bubbleImageLabel.ScaleType = Enum.ScaleType.SlicebubbleImageLabel.SliceCenter = Rect.new(40, 40, 320, 120)bubbleImageLabel.SliceScale = 0.5

Tabel berikut menjelaskan tersedia GuiObject dan modifikasi penampilan anak-anak bersama dengan properti kustomisasi yang valid:
Propinsi | Deskripsi | Standar |
---|---|---|
Image | ID aset gambar latar belakang gelembung. | |
ImageColor3 | Warna tinta dari gambar latar belakang gelembung di Color3 . | [255, 255, 255] |
ImageRectOffset | Offset dari area gambar yang akan ditampilkan dari bagian atas kiri dalam piksel. | (0, 0) |
ImageRectSize | Ukuran area gambar yang akan ditampilkan dalam piksel. Untuk menampilkan seluruh gambar, atur dimensi ke 0 . | (0, 0) |
ScaleType | Jenis skala untuk menampilkan gambar saat ukurannya berbeda dari ukuran absolut gelembung. | Stretch |
SliceCenter | Potong batas gambar jika gambar adalah gambar berpotongan 9. Hanya berlaku ketika Anda mengatur ScaleType sebagai Slice. | (0, 0, 0, 0) |
SliceScale | Rasio skala ujung potong jika gambar adalah gambar berpotongan 9. Hanya berlaku ketika Anda mengatur ScaleType sebagai Slice. | 1 |
TileSize | Ukuran ubin dari gambar. Hanya berlaku ketika Anda mengatur ScaleType sebagai Tile. | (1, 0, 1, 0) |
Kustomisasi per gelembung
Anda dapat secara individual menyesuaikan dan memodifikasi perilaku gelembung obrolan berdasarkan kondisi tertentu untuk menghapus pengaturan umum Anda.Sebagai contoh, Anda dapat menggunakan gelembung obrolan untuk membedakan NPC dan pengguna, menyoroti status kesehatan kritis, dan menerapkan efek khusus ke pesan dengan kata kunci yang sudah ditentukan sebelumnya.
Untuk mengatur kustomisasi per gelembung, tambahkan sisi klien LocalScript menggunakan BubbleChatMessageProperties , yang menggantikan properti yang cocok dari BubbleChatConfiguration , dan panggilan balik TextChatService.OnBubbleAdded untuk menentukan cara menyesuaikan setiap gelembung.Panggil balasan memberi Anda dengan properti TextChatMessage dan adornasi, sehingga Anda dapat menerapkan kustomisasi berdasarkan atribut yang terkait dengan pengguna, konten teks obrolan, properti karakter pengguna, dan kondisi khusus yang ingin Anda definisikan.
Properti kustomisasi dasar berikut tersedia untuk kustomisasi per gelembung:
Propinsi | Deskripsi | Standar |
---|---|---|
BackgroundColor3 | Warna latar belakang gelembung di Color3 . | (250, 250, 250) |
BackgroundTransparency | Transparansi latar belakang gelembung. | 0.1 |
FontFace | Font dari teks gelembung. | BuilderSansMedium |
TextColor3 | Warna teks gelembung di Color3 . | [57, 59, 61] |
TextSize | Ukuran teks gelembung. | 16 |
Contoh berikut menambahkan penampilan khusus ke gelembung obrolan pengguna VIP dengan memeriksa apakah pengirim pesan obrolan memiliki atribut IsVIP:
Gelembung VIP
local TextChatService = game:GetService("TextChatService")
local Players = game:GetService("Players")
-- Pengelola acara saat gelembung obrolan baru ditambahkan ke pengalaman
TextChatService.OnBubbleAdded = function(message: TextChatMessage, adornee: Instance)
-- Periksa apakah pesan obrolan memiliki Sumber Teks (pengirim) yang terkait dengannya
if message.TextSource then
-- Buat instance BubbleChatMessageProperties baru untuk menyesuaikan gelembung obrolan
local bubbleProperties = Instance.new("BubbleChatMessageProperties")
-- Dapatkan pengguna yang mengirim pesan obrolan berdasarkan UserId mereka
local player = Players:GetPlayerByUserId(message.TextSource.UserId)
if player:GetAttribute("IsVIP") then
-- Jika pemain adalah VIP, kustomisasi properti gelembung obrolan
bubbleProperties.TextColor3 = Color3.fromHex("#F5CD30")
bubbleProperties.BackgroundColor3 = Color3.fromRGB(25, 27, 29)
bubbleProperties.FontFace = Font.fromEnum(Enum.Font.PermanentMarker)
end
return bubbleProperties
end
end
Semua opsi kustomisasi canggih tersedia untuk kustomisasi per gelembung.Mirip dengan kustomisasi lanjutan untuk gelembung umum, tambahkan instans yang ingin Anda kustomisasi sebagai anak-anak dari BubbleChatMessageProperties .Contoh berikut menambahkan efek gradien khusus bersama dengan properti lain untuk gelembung obrolan pengguna dengan status kesehatan rendah dengan memeriksa properti Humanoid.Health karakter pengirim pesan obrolan:
Gelembung Kesehatan Rendah
local TextChatService = game:GetService("TextChatService")
local Players = game:GetService("Players")
-- Pengelola acara saat gelembung obrolan baru ditambahkan ke pengalaman
TextChatService.OnBubbleAdded = function(message: TextChatMessage, adornee: Instance)
-- Periksa apakah pesan obrolan memiliki Sumber Teks (pengirim) yang terkait dengannya
if message.TextSource then
-- Dapatkan pengguna yang mengirim pesan obrolan dengan menggunakan UserId mereka
local player = Players:GetPlayerByUserId(message.TextSource.UserId)
-- Temukan humanoid dalam karakter pengguna
local humanoid = player.Character:FindFirstChildWhichIsA("Humanoid")
if humanoid and humanoid.Health < 25 then
-- Buat instance BubbleChatMessageProperties baru untuk menyesuaikan gelembung obrolan
local bubbleProperties :BubbleChatMessageProperties = Instance.new("BubbleChatMessageProperties")
-- Sesuaikan properti gelembung obrolan untuk kondisi kesehatan rendah
bubbleProperties.BackgroundColor3 = Color3.fromRGB(245, 245, 245)
bubbleProperties.TextColor3 = Color3.fromRGB(234, 51, 96)
bubbleProperties.TextSize = 20
bubbleProperties.FontFace = Font.fromEnum(Enum.Font.DenkOne)
-- Tambahkan UIGradient sebagai anak untuk menyesuaikan gradien
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
Tampilkan gelembung secara manual
Anda mungkin ingin menampilkan gelembung obrolan saat pemain belum mengirim pesan, seperti dengan NPC.Gunakan metode TextChatService:DisplayBubble() untuk menampilkan gelembung obrolan secara manual.
Kustomisasi gelembung ini sama dengan kustomisasi gelembung yang ditampilkan secara otomatis saat Pemain mengirim pesan melalui Saluran Teks menggunakan panggilan balik .
Gelembung NPC
Tampilkan gelembung obrolan untuk karakter non-pemain (NPC) dengan memanggil TextChatService:DisplayBubble(character, message), dengan karakter NPC dan pesan sebagai parameter.Gelembung ini dapat disesuaikan menggunakan panggilan balik TextChatService.OnBubbleAdded seperti gelembung obrolan lainnya.
hanya berfungsi pada skrip sisi klien, jadi pastikan untuk menggunakan dengan diatur ke , atau di dalam wadah yang sesuai , seperti .Jika Anda menempelkan ProximityPrompt ke NPC, skrip untuk menampilkan gelembung obrolan mungkin terlihat seperti ini:
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, "Hello world!")
end)