ด้วยระบบ ในการแชทข้อคุยในประสบการณ์ คุณสามารถสนับสนุน การแชทฟอง เพื่อแสดงการแชทฟองบนผู้ใช้อวาตาร์และ NPC ด้านบน ฟอง
เปิดใช้งาน Bubble แชท
เพื่อเปิดใช้งานการแชทฟองในประสบการณ์ของคุณ:
ใน หน้าต่าง Explorer เลือก BubbleChatConfiguration ภายใต้ TextChatService
ใน หน้าต่าง Proprieties ตรวจสอบกากบายกาก Enabled กากบายกาก
การปรับแต่งฟอง
หลังจากเปิดใช้งานฟีเจอร์แชทฟองอากาศคุณสามารถปรับแต่งปรากฏของฟองอากาศของคุณเพื่อให้ตรงกับธีมของคุณ ใช้หน้าต่าง เอกสาร ของ Class.Bubble
นอกจากนี้คุณยังสามารถเพิ่ม LocalScript ใน StarterPlayerScripts ด้วยการตั้งค่าการปรับแต่งทั้งหมดของคุณ นี่ช่วยให้เครื่องยนต์สามารถใช้การปรับแต่งของคุณในระหว
การปรับแต่งพื้นฐาน
ตารางต่อไปนี้แสดงคุณสมบัติการปรับแต่งบับเบิลทั่วไป สำหรับรายการคุณสมบัติทั้งหมด โปรดดูที่ 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://6733332557"bubbleImageLabel.ScaleType = Enum.ScaleType.SlicebubbleImageLabel.SliceCenter = Rect.new(40, 40, 320, 120)bubbleImageLabel.SliceScale = 0.5
ตารางต่อไปนี้ระบุ GuiObject และ ตัวเพิ่มการปรากฏตัว เด็ก ๆ พร้อมกับคุณสมบัติการปรับแต่งที่ถูกต้องของพวกเขา:
สมบัติ | คำอธิบาย | เริ่มต้น |
---|---|---|
Image | รหัสสินทรัพย์ของรูปพื้นหลังฟอง | |
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 ด้านล่
สิ่งต่อไปนี้คือคุณสมบัติการปรับแต่งพื้นฐานที่มีอยู่สำหรับการปรับแต่ง per-bubble:
สมบัติ | คำอธิบาย | เริ่มต้น |
---|---|---|
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
ตัวเลือกการปรับแต่งทั้งหมดสำหรับการปรับแต่งแบบฟองอากาศ เหมือนกับตัวเลือกการปรับแต่งสำหรับฟองอากาศทั่วไปโดยตรวจสอบสถานะสุขภาพของ
ฟองอากาศสุขภาพต่ำ
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.Parent = bubbleProperties
uiGradient.Rotation = 90
return bubbleProperties
end
end
end
ฟอง NPC
คุณสามารถแสดงฟองบับเบิลสำหรับตัวละครที่ไม่ใช่ตัวผู้เล่น (NPC) โดยการเรียก TextChatService:DisplayBubble() โดยใช้ตัวละคร NPC และข้อความเป็นตัวแปร บัฟเบิลเหล่านี้สามาร
TextChatService:DisplayBubble() ทำงานได้เฉพาะบนสคริปต์ด้านล่างเท
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)