Özel metin sohbeti arayüzü

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Bu örnek, kendi frontend'inizi tasarlamak için TextChatService sınıfını nasıl kullanacağınızı gösterir.Varsayılan metin kanallarını CreateDefaultTextChannels 'dan yeniden kullanır ve varsayılan UI'ye kıyasla çok basittir.

  1. Studio'nun TextChatService penceresinde ChatWindowConfiguration.Enabled ve ChatInputBarConfiguration.Enabled özelliklerini ayarlayarak varsayılan UI'yi devre dışı bırakın false ve Studio'nun Özellikleri penceresinde çalıştırın.

  2. Sohbet giriş çubuğu için bir değiştirme oluşturun. Bu, kullanıcı Enter düğmesine bastığında iletiler gönderen metin kutusudur.

    1. Bir ScreenGui oluştur ve bunu StarterGui 'ye ebeveyn yap.

    2. Bir oluştur ve yeni 'e ebeveyn yap, ardından yeniden konumlandır ve istediğiniz gibi yeniden boyutlandır.

    3. Bir LocalScript oluştur ve yeni TextBox 'e ebeveyn ol.

    4. Aşağıdaki kodu LocalScript 'ye ekleyin:

      Müşteri

      local TextChatService = game:GetService("TextChatService")
      -- RBXGeneral, varsayılan genel kanaldır
      local RBXGeneral = TextChatService:FindFirstChild("TextChannels"):WaitForChild("RBXGeneral")
      local textBox = script.Parent
      textBox.FocusLost:Connect(function(enterPressed)
      local text = textBox.Text
      if enterPressed and #text > 0 then
      local success, response = pcall(function()
      return RBXGeneral:SendAsync(textBox.Text)
      end)
      if not success then
      RBXGeneral:DisplaySystemMessage("Failed to send message")
      end
      -- Kullanıcılar, bir mesaj gönderdikten sonra giriş kutusunun temizlenmesini bekler
      textBox.Text = ""
      end
      end)
  3. Sohbet penceresine bir değiştirme oluştur.Bu, iletilerin alındığı gibi gösterilen ScrollingFrame mesajların görüntülenmesidir TextChatService.MessageReceived.Bu adım ayrıca mesajları otomatik olarak düzenlemek için bir UIListLayout oluşturur.

    1. Başka yeni bir ScreenGui oluştur ve bunu StarterGui 'ye ebeveyn yap.

    2. Bir oluştur ve bunu 'ye eşleştir, ardından yeniden konumlandır ve istenen şekilde yeniden boyutlandır ».

    3. Bir UIListLayout oluştur ve bunu ScrollingFrame 'ye ebeveyn yap.

    4. Bir LocalScript oluştur ve bunu ScrollingFrame 'ye ebeveyn yap.

    5. Aşağıdaki kodu LocalScript 'ye ekleyin:

      Müşteri

      local TextChatService = game:GetService("TextChatService")
      -- Alınan her mesaj için yeni bir metin etiketi oluşturmak için işlev
      local function addMessageGui(textChatMessage: TextChatMessage)
      local isOutgoingMessage = textChatMessage.Status == Enum.TextChatMessageStatus.Sending
      local parent = script.Parent
      local originalLabel = parent:FindFirstChild(textChatMessage.MessageId)
      if originalLabel then
      originalLabel.Text = textChatMessage.Text
      originalLabel.BackgroundTransparency = if isOutgoingMessage then 0.5 else 0
      else
      local textLabel = Instance.new("TextLabel")
      textLabel.BorderSizePixel = 0
      textLabel.Font = Enum.Font.BuilderSans
      textLabel.TextSize = 18
      textLabel.TextXAlignment = Enum.TextXAlignment.Left
      textLabel.BackgroundTransparency = if isOutgoingMessage then 0.5 else 0
      textLabel.BackgroundColor3 = Color3.fromRGB(0, 0, 0)
      textLabel.TextColor3 = Color3.fromRGB(255, 255, 255)
      textLabel.Name = textChatMessage.MessageId
      textLabel.AutomaticSize = Enum.AutomaticSize.XY
      textLabel.Text = textChatMessage.Text
      textLabel.Parent = parent
      end
      end
      -- Gelen mesajları dinlemeye başla
      TextChatService.MessageReceived:Connect(addMessageGui)
  4. Sohbet giriş çubuğuna mesaj göndererek deneyiminizi test edin.Mesajların sohbet penceresinde göründüğünü görmelisiniz.Ardından bu örneği genişletebilirsiniz, bir anahtar basıldığında TextBox odaklanmak veya sohbet etiketleri eklemek gibi özellikler ekleyerek.