TextService

Afficher les obsolètes

*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.

Création impossible
Service
Non répliqué

Le service TextService est un service responsable de la gestion de l'affichage du texte dans le jeu.

Cette classe a deux fonctions membres :

La fonction TextService:GetTextSize() donne aux développeurs la possibilité de calculer l'espace requis pour une chaîne de texte spécifique avec un formatage spécifié, en retournant une taille de pixel Vector2 .

La fonction TextService:FilterStringAsync() est requise pour filtrer correctement le texte spécifié par l'utilisateur (tels que les messages de chat ou d'autres entrées) dans l'intérêt de la sécurité de l'utilisateur.Les développeurs qui n'utilisent pas la valeur par défaut de Roblox Chat ou qui permettent aux utilisateurs d'entrer autrement du texte doivent utiliser cette fonction.

Résumé

Méthodes

Propriétés

Méthodes

GetTextSize

Paramètres

string: string
Valeur par défaut : ""
fontSize: number
Valeur par défaut : ""
font: Enum.Font
Valeur par défaut : ""
frameSize: Vector2
Valeur par défaut : ""

Retours

Échantillons de code

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

Rendement

Paramètres

stringToFilter: string
Valeur par défaut : ""
fromUserId: number
Valeur par défaut : ""
targetLocales: Array
Valeur par défaut : ""
Valeur par défaut : "PrivateChat"

Retours

FilterStringAsync

Rendement

Paramètres

stringToFilter: string
Valeur par défaut : ""
fromUserId: number
Valeur par défaut : ""
Valeur par défaut : "PrivateChat"

Retours

Échantillons de code

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

Rendement

Paramètres

assetId: ContentId
Valeur par défaut : ""

Retours

Échantillons de code

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

Rendement

Paramètres

Valeur par défaut : ""

Retours

Échantillons de code

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

Rendement

Paramètres

fontSize: number
Valeur par défaut : ""
font: Enum.Font
Valeur par défaut : ""

Retours

Événements