Trò chuyện bong bóng

*Nội dung này được dịch bằng AI (Beta) và có thể có lỗi. Để xem trang này bằng tiếng Anh, hãy nhấp vào đây.

Với hệ thống trò chuyện trong kinh nghiệm, bạn có thể hỗ trợ trò chuyện trong màn hình bong bóng để hiển thị các cuộc trò chuyện có thể tùy chỉnh trên các thùng nhận và NPCs. Trò chuyện bong b

Mở Bubble Trò chuyện

Để bật bubble chat trong trải nghiệm của bạn:

  1. Trong cửa sổ Explorer, hãy chọn BubbleChatConfiguration dưới TextChatService .

  2. Trong cửa sổ Tùy chỉnh, kiểm tra ô Enabled .

Tùy chỉnh bong bóng

Sau khi bật bubble chat, bạn có thể tùy chỉnh những vị trí và hành vi của những bong bóng trò chuyện của bạn để phù hợp với trải nghiệm của bạn. Sử dụng cửa sổ Thông tin của BubbleChatConfiguration để tùy

Alternatively, you can add a LocalScript in StarterPlayerScripts with all your customization settings. This allows the engine to apply your customizations during runtime, overriding the settings in Studio. It's useful for adding special effects to chat bubbles when users trigger certain events or conditions.

Tùy chỉnh cơ bản

Table sau đây hiển thị các thuộc tính thông thường của trò chuyện bong bóng. Để có một danh sách đầy đủ các thuộc tính tùy chỉnh, hãy xem BubbleChatConfiguration .

Thuộc tínhMô tảMặc định
BackgroundColor3Màu nền của bong bóng ở Color3 .[250, 250, 250]
FontFaceFont của văn bản bong bóng.BuilderSansMedium
TextColor3Màu của văn bản bong bóng ở Color3 .[57, 59, 61]
TextSizeKích thước của văn bản bong bóng.16

Tuỳ chỉnh Nâng cao

Để tùy chỉnh nâng cao của bong của bạn, hãy thêm đối tượng UI đại diện cho một số khía cạnh của hình dạng bong như trẻ em dưới BubbleChatConfiguration, bao gồm:

  • ImageLabel cho cài đặt hình ảnh nền.
  • UIGradient cho cài đặtgradient背景.
  • UICorner cho hình dạng góc của bong bóng.
  • UIPadding cho không gian đệm giữa các khu vực chữ và vùng ngoài hình của bong bóng, so với kích thước bình thường của cha mẹ.

Sau khi thêm các thống kê này, bạn có thể modifi các thuộc tính của các thống kê này áp dụng cho các bong bóng trò chuyện cho sự tùy chỉnh bong bóng nâng cao. Các ví dụ sau đây LocalScript thêm một hình ảnh nền và các góc cạnh sắc nét cho các bong bóng:

Tuỳ chỉnh bong bóng nâng cao

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

Các bảng sau đây trình bày các đứa con GuiObjectnhững đứa con chỉnh sửa nhìn của họ cùng với các thuộc tính tùy chỉnh hợp lệ của họ:

Thuộc tínhMô tảMặc định
ImageID tài nguyên của hình ảnh nền bong bóng.
ImageColor3Màu tint của hình ảnh nền bong bóng trong Color3 .[255, 255, 255] >
ImageRectOffsetĐộ lùi của khu vực hình ảnh để được hiển thị từ phía trên cùng bên trái trong pixel.(0, 0)
ImageRectSizeKích thước khu vực hình ảnh để được hiển thị bằng pixel. Để hiển thị toàn bộ hình ảnh, hãy cài đặt bất kỳ chiều hướng nào để 0 .(0, 0)
ScaleTypeLoại thước đo cho phép bạn xác định kích thước của hình ảnh khi kích thước của nó khác với kích thước tuyệt đối của bong bóng.Stretch
SliceCenterCắt giới hạn của hình ảnh nếu hình ảnh là hình ảnh 9-sliced. Chỉ áp dụng khi bạn đặt ScaleType như Slice .(0, 0, 0, 0)
SliceScaleTỷ lệ thước đo của các cạnh hình ảnh nếu hình ảnh là một hình ảnh 9-sliced. Chỉ áp dụng khi bạn đặt ScaleType như Slice .1
TileSizeKích thước gạch của hình ảnh. Chỉ áp dụng khi bạn đặt ScaleType như Tile .(1, 0, 1, 0)

Tùy chỉnh per-bubble

Bạn có thể tùy chỉnh và điều chỉnh hành vi bong bóng trò chuyện dựa trên các điều kiện cụ thể mà vượt qua các cài đặt chung của bạn. Ví dụ, bạn có thể sử dụng bong bóng trò chuyện để phân biệt NPC và người dùng, nhấn mạnh trạng thái sức khỏe quan trọng và áp dụng các hiệu ứng đ

Để tùy chỉnh bong bóng, thêm một client-side LocalScript sử dụng BubbleChatMessageProperties , which overrides matching properties of <

Các thuộc tính tùy chỉnh cơ bản sau đây được cung cấp cho tùy chỉnh bong bóng:

Thuộc tínhMô tảMặc định
BackgroundColor3Màu nền của bong bóng ở Color3 .(250, 250, 250)
BackgroundTransparencyĐộ trong suốt của bong bóng.0.1
FontFaceFont của văn bản bong bóng.BuilderSansMedium
TextColor3Màu của văn bản bong bóng ở Color3 .[57, 59, 61]
TextSizeKích thước của văn bản bong bóng.16

Các ví dụ sau đây thêm một vẻ ngoài đặc biệt cho bong bóng trò chuyện của người dùng VIP bằng cách kiểm tra có phải người gửi tin nhắn có đặribut IsVIP không:

Bong bóng VIP

local TextChatService = game:GetService("TextChatService")
local Players = game:GetService("Players")
-- Người tùy chỉnh sự kiện cho khi một bong bóng trò chuyện mới được thêm vào trải nghiệm
TextChatService.OnBubbleAdded = function(message: TextChatMessage, adornee: Instance)
-- Kiểm tra có phải tin nhắn trò chuyện có một TextSource (người gửi) đi kèm hay không
if message.TextSource then
-- Tạo một mô hình BubbleChatMessageProperties mới để tùy chỉnh bong bóng trò chuyện
local bubbleProperties = Instance.new("BubbleChatMessageProperties")
-- Nhận người dùng đã gửi tin nhắn trò chuyện dựa trên UserId của họ
local player = Players:GetPlayerByUserId(message.TextSource.UserId)
if player:GetAttribute("IsVIP") then
-- Nếu người chơi là một VIP, tùy chỉnh các thuộc tính bong bóng trò chuyện
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ất cả các tùy chọn tùy chỉnh nâng cao đều có sẵn cho tùy chỉnh bong bóng. Tương tự như tùy chỉnh nâng cao cho các bong bóng chung, thêm các instace bạn muốn tùy chỉnh như con cái của BubbleChatMessageProperties . C

Bong bóng sức khỏe thấp

local TextChatService = game:GetService("TextChatService")
local Players = game:GetService("Players")
-- Người tùy chỉnh sự kiện cho khi một bong bóng trò chuyện mới được thêm vào trải nghiệm
TextChatService.OnBubbleAdded = function(message: TextChatMessage, adornee: Instance)
-- Kiểm tra có phải tin nhắn trò chuyện có một TextSource (người gửi) đi kèm hay không
if message.TextSource then
-- Nhận người dùng đã gửi tin nhắn trò chuyện bằng cách sử dụng UserId của họ
local player = Players:GetPlayerByUserId(message.TextSource.UserId)
-- Tìm hình người trong nhân vật người dùng
local humanoid = player.Character:FindFirstChildWhichIsA("Humanoid")
if humanoid and humanoid.Health < 25 then
-- Tạo một mô hình BubbleChatMessageProperties mới để tùy chỉnh bong bóng trò chuyện
local bubbleProperties :BubbleChatMessageProperties = Instance.new("BubbleChatMessageProperties")
-- Tùy chỉnh các thuộc tính bong bóng trò chuyện cho điều kiện sức khỏe thấp
bubbleProperties.BackgroundColor3 = Color3.fromRGB(245, 245, 245)
bubbleProperties.TextColor3 = Color3.fromRGB(234, 51, 96)
bubbleProperties.TextSize = 20
bubbleProperties.FontFace = Font.fromEnum(Enum.Font.DenkOne)
-- Thêm một UIGradient như con cái để tùy chỉnh 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

Bong bóng NPC

Bạn có thể hiển thị bong bóng trò chuyện cho những nhân vật ngoài hành động (NPC) bằng cách gọi TextChatService:DisplayBubble(), với nhân vật NPC và thông điệp như một đối tượng. Đây là những bong bóng có thể tùy chỉnh bằng cách sử dụng

TextChatService:DisplayBubble() chỉ hoạt động trên các tập lệnh bên trình client, vì v


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)