ด้วย TextChatService คุณสามารถใช้บับเบิ้ลแชทเพื่อแสดงฟองข้อความที่สามารถปรับแต่งได้บนอวตารและ NPC ของผู้ใช้การแชทฟองสบู่สามารถทำให้ประสบการณ์ของคุณมีความสมจริงทางสายตามากขึ้นและช่วยให้ผู้ใช้สามารถระบุข้อความและผู้พูดของพวกเขาได้อย่างง่ายดายในบริบทที่เกี่ยวข้องคุณสมบัตินี้มีประโยชน์เป็นพิเศษสำหรับประสบการณ์ที่ผู้ใช้ต้องโฟกัสกับเนื้อหาในขณะที่สื่อสารกับผู้อื่นในลักษณะที่น้อยกว่าน่ารำคาญ
เปิดใช้งานการแชทฟองสบู่
เพื่อเปิดใช้งานการแชทฟองในประสบการณ์ของคุณ:
ในหน้าต่าง สํารวจ เลือก BubbleChatConfiguration ใต้ TextChatService
ในหน้าต่าง คุณสมบัติ ตรวจสอบกล่องเลือก BubbleChatConfiguration.Enabled
การปรับแต่งฟองข้อความ
หลังจากเปิดใช้งานการแชทฟองอากาศแล้ว คุณสามารถปรับแต่งรูปลักษณ์และพฤติกรรมของฟองการแชทของคุณให้ตรงกับธีมประสบการณ์ของคุณใช้หน้าต่าง คุณสมบัติ ของ สำหรับการเปลี่ยนแปลงพื้นฐานเช่นสีข้อความและช่องว่างหรือใช้การปรับแต่งแบบกําหนดเองแบบขั้นสูงสําหรับภาพพื้นหลังฟองอากาศและการปรับแต่งภาพวิดีโออื่น ๆ

หรือเพิ่ม LocalScript ใน StarterPlayerScripts ด้วยการตั้งค่าการปรับแต่งทั้งหมดของคุณสิ่งนี้ช่วยให้เครื่องยนต์สามารถใช้การปรับแต่งของคุณในระหว่างการทำงาน แทนที่การตั้งค่าใน Studioมันมีประโยชน์สำหรับการเพิ่มเอฟเฟกต์พิเศษให้กับฟองข้อความเมื่อผู้ใช้กระตุ้นเหตุการณ์หรือเงื่อนไขบางอย่าง
การปรับแต่งพื้นฐาน
ตารางต่อไปแสดงคุณสมบัติการปรับแต่งบับเบิ้ลทั่วไป สำหรับรายการคุณสมบัติการปรับแต่งทั้งหมด ดูที่ BubbleChatConfiguration
คุณสมบัติ | คําอธิบาย | ค่าเริ่มต้น |
---|---|---|
BackgroundColor3 | สีพื้นหลังของฟองใน Color3 . | [250, 250, 250] |
FontFace | Font ของข้อความฟองสบู่ | BuilderSansMedium |
TextColor3 | สีของข้อความฟองใน Color3 . | [57, 59, 61] |
TextSize | ขนาดของข้อความฟอง ๆ | 16 |
การปรับแต่งแบบขั้นสูง
สำหรับการปรับแต่งแบบขั้นสูงของฟองของคุณเพิ่มวัตถุ UI ที่แทนที่ส่วนหนึ่งของลักษณะของฟองที่ปรากฏเป็นเด็กภายใต้ BubbleChatConfiguration รวมถึง:
- ImageLabel สำหรับการตั้งค่าภาพพื้นหลัง
- UIGradient สำหรับการตั้งค่าเฉดสีพื้นหลัง
- UICorner สำหรับรูปทรงมุมของฟองอากาศ
- UIPadding สำหรับพื้นที่ว่างระหว่างขอบข้อความและฟองอากาศ เมื่อเทียบกับขนาดปกติของผู้ปกครอง
หลังจากเพิ่มวัตถุเหล่านี้แล้ว คุณสามารถแก้ไขคุณสมบัติของวัตถุเหล่านี้ที่สามารถใช้กับฟองข้อความสำหรับการปรับแต่งฟองบับขั้นสูงได้ตัวอย่างต่อไปนี้ LocalScript เพิ่มภาพพื้นหลังและมุมแหลมให้กับฟองอากาศ:
การปรับแต่งฟองสบู่ขั้นสูง
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

ตารางต่อไปนี้อธิบายเด็กที่มีอยู่ GuiObject และ ตัวแก้ไขรูปลักษณ์ พร้อมกับคุณสมบัติการปรับแต่งที่ถูกต้อง:
คุณสมบัติ | คําอธิบาย | ค่าเริ่มต้น |
---|---|---|
Image | ID สินทรัพย์ของภาพพื้นหลังฟองสบู่ | |
ImageColor3 | สีย้อมของภาพพื้นหลังฟองอากาศใน Color3 . | [255, 255, 255] |
ImageRectOffset | ค่าเอฟเฟกต์ของพื้นที่ภาพที่จะแสดงจากด้านบนซ้ายในพิกเซล | (0, 0) |
ImageRectSize | ขนาดของพื้นที่ภาพที่จะแสดงเป็นพิกเซล เพื่อแสดงภาพทั้งหมด ให้ตั้งค่ามิติเป็น 0 | (0, 0) |
ScaleType | ประเภทเครื่องชั่งสำหรับการแสดงภาพเมื่อขนาดของมันแตกต่างจากขนาดสัมบูรณ์ของฟอง | Stretch |
SliceCenter | ตัดขอบของภาพหากภาพเป็นภาพที่ตัด 9 ส่วนเท่านั้น ใช้ได้เฉพาะเมื่อคุณตั้ง ScaleType เป็น Slice | (0, 0, 0, 0) |
SliceScale | อัตราส่วนขอบสไลซ์หากภาพเป็นภาพแบ่งเป็น 9 ส่วนเท่านั้น ใช้ได้เฉพาะเมื่อคุณตั้ง ScaleType เป็น Slice | 1 |
TileSize | ขนาดการจัดเรียงของภาพ สามารถใช้ได้เฉพาะเมื่อคุณตั้ง ScaleType เป็น Tile | (1, 0, 1, 0) |
การปรับแต่งต่อฟองต์เฉพาะ
คุณสามารถปรับแต่งและแก้ไขพฤติกรรมฟองแชทแบบเฉพาะเจาะจงตามเงื่อนไขเฉพาะเพื่อที่จะเหนือกว่าการตั้งค่าทั่วไปของคุณตัวอย่างเช่น คุณสามารถใช้ฟองข้อความเพื่อแยกแยะ NPC และผู้ใช้ เน้นสถานะสุขภาพที่สำคัญ และใช้เอฟเฟกต์พิเศษกับข้อความที่มีคำหลักที่กำหนดไว้ล่วงหน้า
เพื่อกำหนดการปรับแต่งต่อบลาสต์แต่ละครั้ง ให้เพิ่มการเรียกกลับด้านไคลเอนต์ LocalScript โดยใช้ BubbleChatMessageProperties ซึ่งแทนที่คุณสมบัติที่ตรงกันของ BubbleChatConfiguration และการโทรกลับ TextChatService.OnBubbleAdded เพื่อกำหนดวิธีการปรับแต่งแต่ละฟองคอลเลกชันการโทรกลับจะจัดหาคุณด้วยคุณสมบัติ TextChatMessage และอวตาร ดังนั้นคุณสามารถใช้การปรับแต่งตามคุณลักษณะที่เกี่ยวข้องกับผู้ใช้ เนื้อหาข้อความแชท คุณลักษณะตัวละครของผู้ใช้ และเงื่อนไขพิเศษที่คุณต้องการกำหนด
คุณสมบัติการปรับแต่งพื้นฐานต่อไปนี้มีให้สำหรับการปรับแต่งต่อบลาสต์:
คุณสมบัติ | คําอธิบาย | ค่าเริ่มต้น |
---|---|---|
BackgroundColor3 | สีพื้นหลังของฟองใน Color3 . | (250, 250, 250) |
BackgroundTransparency | ความโปร่งใสพื้นหลังของฟองอากาศ | 0.1 |
FontFace | Font ของข้อความฟองสบู่ | BuilderSansMedium |
TextColor3 | สีของข้อความฟองใน Color3 . | [57, 59, 61] |
TextSize | ขนาดของข้อความฟอง ๆ | 16 |
ตัวอย่างต่อไปนี้เพิ่มลักษณะพิเศษให้กับฟองข้อความแชทของผู้ใช้ VIP โดยตรวจสอบว่าผู้ส่งข้อความแชทมีคุณสมบัติ IsVIP:
ฟอง VIP
local TextChatService = game:GetService("TextChatService")
local Players = game:GetService("Players")
-- ตัวจัดการเหตุการณ์สำหรับเมื่อฟองแชทใหม่ถูกเพิ่มลงในประสบการณ์
TextChatService.OnBubbleAdded = function(message: TextChatMessage, adornee: Instance)
-- ตรวจสอบว่าข้อความแชทมี TextSource (ผู้ส่ง) ที่เกี่ยวข้องกับมัน
if message.TextSource then
-- สร้างตัวแปร BubbleChatMessageProperties ใหม่เพื่อปรับแต่งฟองข้อความแชท
local bubbleProperties = Instance.new("BubbleChatMessageProperties")
-- รับผู้ใช้ที่ส่งข้อความแชทตาม UserId ของพวกเขา
local player = Players:GetPlayerByUserId(message.TextSource.UserId)
if player:GetAttribute("IsVIP") then
-- หากผู้เล่นเป็น VIP ปรับแต่งคุณสมบัติฟองแชท
bubbleProperties.TextColor3 = Color3.fromHex("#F5CD30")
bubbleProperties.BackgroundColor3 = Color3.fromRGB(25, 27, 29)
bubbleProperties.FontFace = Font.fromEnum(Enum.Font.PermanentMarker)
end
return bubbleProperties
end
end
ตัวเลือกการปรับแต่งขั้นสูงทั้งหมดสามารถใช้สําหรับการปรับแต่งต่อบลาสต์ได้คล้ายกับการปรับแต่งแบบขั้นสูงสำหรับฟองอากาศทั่วไป เพิ่มตัวอย่างที่คุณต้องการปรับแต่งเป็นลูกหลานของ BubbleChatMessagePropertiesตัวอย่างต่อไปนี้เพิ่มเอฟเฟกต์การเลื่อนระดับพิเศษพร้อมกับคุณสมบัติอื่นๆ ในฟองข้อความแชทของผู้ใช้ที่มีสถานะสุขภาพต่ำโดยตรวจสอบคุณสมบัติ Humanoid.Health ของตัวแทนของข้อความแชท:
ฟองอากาศสุขภาพต่ำ
local TextChatService = game:GetService("TextChatService")
local Players = game:GetService("Players")
-- ตัวจัดการเหตุการณ์สำหรับเมื่อฟองแชทใหม่ถูกเพิ่มลงในประสบการณ์
TextChatService.OnBubbleAdded = function(message: TextChatMessage, adornee: Instance)
-- ตรวจสอบว่าข้อความแชทมี TextSource (ผู้ส่ง) ที่เกี่ยวข้องกับมัน
if message.TextSource then
-- รับผู้ใช้ที่ส่งข้อความแชทโดยใช้ UserId ของพวกเขา
local player = Players:GetPlayerByUserId(message.TextSource.UserId)
-- ค้นหามนุษย์ในตัวละครของผู้ใช้
local humanoid = player.Character:FindFirstChildWhichIsA("Humanoid")
if humanoid and humanoid.Health < 25 then
-- สร้างตัวแปร BubbleChatMessageProperties ใหม่เพื่อปรับแต่งฟองข้อความแชท
local bubbleProperties :BubbleChatMessageProperties = Instance.new("BubbleChatMessageProperties")
-- ปรับแต่งคุณสมบัติฟองแชทสำหรับสภาวะสุขภาพต่ำ
bubbleProperties.BackgroundColor3 = Color3.fromRGB(245, 245, 245)
bubbleProperties.TextColor3 = Color3.fromRGB(234, 51, 96)
bubbleProperties.TextSize = 20
bubbleProperties.FontFace = Font.fromEnum(Enum.Font.DenkOne)
-- เพิ่ม UIGradient เป็นลูกเพื่อปรับแต่งเฉดสี
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
แสดงฟองอากาศด้วยตนเอง
คุณอาจต้องการแสดงฟองแชทเมื่อผู้เล่นยังไม่ได้ส่งข้อความ เช่น กับ NPCsใช้วิธี TextChatService:DisplayBubble() เพื่อแสดงฟองแชทด้วยตนเอง
การปรับแต่งฟองข้อมูลเหล่านี้เป็นเช่นเดียวกับการปรับแต่งฟองข้อมูลที่แสดงโดยอัตโนมัติเมื่อผู้เล่นส่งข้อความผ่านช่องทางข้อความโดยใช้การโทรกลับ TextChatService.OnBubbleAdded คืน
ฟองอากาศ NPC
แสดงฟองข้อความสำหรับตัวละครที่ไม่ใช่ผู้เล่น (NPC) โดยการโทร TextChatService:DisplayBubble(character, message) โดยมีตัวละคร NPC และข้อความเป็นพารามิเตอร์ฟองเหล่านี้สามารถปรับแต่งได้โดยใช้การโทรกลับ TextChatService.OnBubbleAdded เช่นเดียวกับฟองข้อความอื่น ๆ
TextChatService:DisplayBubble() ทำงานได้เฉพาะในสคริปต์ด้านคลายเท่านั้น ดังนั้นให้แน่ใจว่าใช้ Script กับ RunContext ตั้งค่าเป็น Enum.RunContext.Client หรือ LocalScript ใน คอนเทนเนอร์ที่เหมาะสม เช่น StarterPlayerScriptsหากคุณแนบ ProximityPrompt กับ NPC สคริปต์สำหรับการแสดงฟองแชทอาจมีลักษณะดังนี้:
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)