이 예시에서는 TextChatService 클래스를 사용하여 자체 프론트엔드를 디자인하는 방법을 보여줍니다.기본 텍스트 채널을 CreateDefaultTextChannels에서 재사용하고 기본 UI와 비교하면 매우 간단합니다.
Studio의 속성 창에서 속성과 속성 속성을 설정하여 기본 UI인 UI를 비활성화하고 스튜디오의 속성 창에서 속성을 비활성화합니다.
채팅 입력 바의 대체 항목을 만듭니다. 사용자가 Enter를 누르면 메시지가 발송되는 텍스트 상자입니다.
Create a ScreenGui 및 StarterGui 에 부모로 지정하십시오.
Create a LocalScript 및 새로운 TextBox 에 부모로 지정하십시오.
다음 코드를 LocalScript에 추가하십시오:
클라이ентlocal TextChatService = game:GetService("TextChatService")-- RBXGeneral은 기본 공개 채널입니다local RBXGeneral = TextChatService:FindFirstChild("TextChannels"):WaitForChild("RBXGeneral")local textBox = script.ParenttextBox.FocusLost:Connect(function(enterPressed)local text = textBox.Textif enterPressed and #text > 0 thenlocal success, response = pcall(function()return RBXGeneral:SendAsync(textBox.Text)end)if not success thenRBXGeneral:DisplaySystemMessage("Failed to send message")end-- 사용자는 메시지를 보낸 후 입력 상자가 지워지기를 기대합니다textBox.Text = ""endend)
채팅 창의 대체 창을 만듭니다.이것은 메시지를 받은 대로 표시하는 ScrollingFrame 이며, TextChatService.MessageReceived 에서 수신됩니다.이 단계에서는 또한 메시지를 자동으로 레이아웃하기 위해 UIListLayout를 생성합니다.
다른 새로운 ScreenGui를 만들고 부모로 StarterGui에 지정하십시오.
Create a 및 를 부모로 지정하고, 원하는 대로 위치를 조정하고 크기를 조정합니다.
Create a UIListLayout 및 ScrollingFrame 에 부모로 지정하십시오.
Create a LocalScript 및 ScrollingFrame 에 부모로 지정하십시오.
다음 코드를 LocalScript에 추가하십시오:
클라이ентlocal TextChatService = game:GetService("TextChatService")-- 받은 각 메시지에 대한 새 텍스트 레이블을 생성하는 함수local function addMessageGui(textChatMessage: TextChatMessage)local isOutgoingMessage = textChatMessage.Status == Enum.TextChatMessageStatus.Sendinglocal parent = script.Parentlocal originalLabel = parent:FindFirstChild(textChatMessage.MessageId)if originalLabel thenoriginalLabel.Text = textChatMessage.TextoriginalLabel.BackgroundTransparency = if isOutgoingMessage then 0.5 else 0elselocal textLabel = Instance.new("TextLabel")textLabel.BorderSizePixel = 0textLabel.Font = Enum.Font.BuilderSanstextLabel.TextSize = 18textLabel.TextXAlignment = Enum.TextXAlignment.LefttextLabel.BackgroundTransparency = if isOutgoingMessage then 0.5 else 0textLabel.BackgroundColor3 = Color3.fromRGB(0, 0, 0)textLabel.TextColor3 = Color3.fromRGB(255, 255, 255)textLabel.Name = textChatMessage.MessageIdtextLabel.AutomaticSize = Enum.AutomaticSize.XYtextLabel.Text = textChatMessage.TexttextLabel.Parent = parentendend-- 받는 메시지 수신 시작 Start listening for incoming messagesTextChatService.MessageReceived:Connect(addMessageGui)