TextService

Artık kullanılmayanları göster

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

Oluşturulamaz
Hizmet
Çoğaltılmamış

TextService, oyundaki metin görüntülenmesini içeren bir hizmettir ve içeride sorumludur.

Bu sınıfın iki üye işlevi vardır:

The TextService:GetTextSize() fonksiyonu, belirtilen biçimle belirli bir metin için gerekli alanı hesaplama yeteneği verir geliştiricilere, bir Vector2 piksel boyutu döndürerek.

TextService:FilterStringAsync() fonksiyonu, kullanıcının belirtilen metnini (örneğin sohbet mesajları veya diğer girişler) kullanıcı güvenliği çıkarları için doğru bir şekilde filtrelemek için gereklidir.Roblox'un varsayılanını kullanmayan geliştiriciler veya kullanıcılara başka bir şekilde metin girmesine izin vermeyenler bu işlevi kullanmalıdır.

Özet

Yöntemler

Özellikler

Yöntemler

GetTextSize

Parametreler

string: string
Varsayılan değer: ""
fontSize: number
Varsayılan değer: ""
font: Enum.Font
Varsayılan değer: ""
frameSize: Vector2
Varsayılan değer: ""

Dönüşler

Kod Örnekleri

TextService: Getting the Text Size

local TextService = game:GetService("TextService")
local function getTextBounds()
local message = "Hello World"
local size = Vector2.new(1, 1)
local bounds = TextService:GetTextSize(message, 12, "SourceSans", size)
return bounds + Vector2.new(1, 1)
end
print(getTextBounds())

FilterAndTranslateStringAsync

Bekletir

Parametreler

stringToFilter: string
Varsayılan değer: ""
fromUserId: number
Varsayılan değer: ""
targetLocales: Array
Varsayılan değer: ""
Varsayılan değer: "PrivateChat"

Dönüşler

FilterStringAsync

Bekletir

Parametreler

stringToFilter: string
Varsayılan değer: ""
fromUserId: number
Varsayılan değer: ""
Varsayılan değer: "PrivateChat"

Dönüşler

Kod Örnekleri

Pet Name Filter Example

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local TextService = game:GetService("TextService")
local Players = game:GetService("Players")
local Remotes = Instance.new("Folder")
Remotes.Name = "PetNamingRemotes"
Remotes.Parent = ReplicatedStorage
local UserNamedPet = Instance.new("RemoteEvent")
UserNamedPet.Name = "UserNamedPet"
UserNamedPet.Parent = Remotes
local SendPetName = Instance.new("RemoteEvent")
SendPetName.Name = "SendPetName"
SendPetName.Parent = Remotes
local RequestAllPetNames = Instance.new("RemoteFunction")
RequestAllPetNames.Name = "RequestAllPetNames"
RequestAllPetNames.Parent = Remotes
local filterResults = {}
local function broadcastPetName(userId)
local filterResult = filterResults[userId]
if filterResult then
for _, player in pairs(Players:GetPlayers()) do
if player then
-- spawn a new thread so as to not yield the update
task.spawn(function()
-- grab the filtered string for this user
local toUserId = player.UserId
local filteredString = filterResult:GetNonChatStringForUserAsync(toUserId)
filteredString = filteredString or ""
SendPetName:FireClient(player, userId, filteredString)
end)
end
end
end
end
UserNamedPet.OnServerEvent:Connect(function(player, petName)
local fromUserId = player.UserId
-- pcall to catch errors
local success, result = pcall(function()
return TextService:FilterStringAsync(petName, fromUserId)
end)
if success then
filterResults[fromUserId] = result
broadcastPetName(fromUserId)
else
print("Could not filter pet name")
end
end)
RequestAllPetNames.OnServerInvoke = function(player)
local toUserId = player.UserId
local petNames = {}
-- go through filter results and filter the pet name to be sent
for fromUserId, filterResult in pairs(filterResults) do
local filteredString = filterResult:GetNonChatStringForUserAsync(toUserId)
filteredString = filteredString or ""
-- need to convert userId to string so it can't be sent via a remote function
petNames[tostring(fromUserId)] = filteredString
end
return petNames
end
Players.PlayerRemoving:Connect(function(oldPlayer)
local userId = oldPlayer.UserId
filterResults[userId] = nil
end)

GetFamilyInfoAsync

Bekletir

Parametreler

assetId: ContentId
Varsayılan değer: ""

Dönüşler

Kod Örnekleri

TextService: Getting font family information

local TextService = game:GetService("TextService")
local familyToCheck = "rbxasset://fonts/families/Arial.json"
-- This is a yield function which may take up to a few seconds to download the font.
local info = TextService:GetFamilyInfoAsync(familyToCheck)
print("Name of the font:", info.Name)
print("Faces:")
for _, face in info.Faces do
print("--------")
print("Name:", face.Name)
print("Weight:", face.Weight.Name)
print("Style:", face.Style.Name)
end

GetTextBoundsAsync

Bekletir

Parametreler

Varsayılan değer: ""

Dönüşler

Kod Örnekleri

TextService: Measuring text size

local TextService = game:GetService("TextService")
local params = Instance.new("GetTextBoundsParams")
params.Text = "hello world!"
params.Font = Font.new("rbxasset://fonts/families/GrenzeGotisch.json", Enum.FontWeight.Thin)
params.Size = 20
params.Width = 200
local size = TextService:GetTextBoundsAsync(params)
print("The size of the text is:", size)

GetTextSizeOffsetAsync

Bekletir

Parametreler

fontSize: number
Varsayılan değer: ""
font: Enum.Font
Varsayılan değer: ""

Dönüşler

Olaylar