TextLabel

Veraltete anzeigen

*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.

Ein TextLabel rendert ein Rechteck, wie ein Frame , mit gestaltetem Text. Das Rechteck kann verwendet werden, um Textgrenzen zu definieren, Textskalierung ( TextLabel.TextScaled ) und Wrapping ( TextLabel.TextWrapped , 1> Class.TextLabel.TextYAlignment1> ,

Diese Klasse enthält Eigenschaften, die die Anzeige des Textes steuern, wie z. B. TextLabel.Font und TextLabel.TextColor3. Alle von einem einzigen Text-Etikett gerenderten Texten werden die gleichen visuellen Eigenschaften haben; mehrere Text-Etikett-Objekte müssen verwendet werden, um mehrere Stile von Text zu rendern.

TextService:GetTextSize() kann verwendet werden, um die Größe (Bounds) des Textes zu erhalten, die in einem TextLabel mit einer Schriftart, einer Schriftgröße und einer Frame-Größe rend染됩니다.

Ein UITextSizeConstraint-Objekt kann verwendet werden, um die Größe des Textes mit TextLabel.TextScaled zu begrenzen, die aktiviert ist. Es wird empfohlen, dass die Größe des Textes nicht weniger als 9 ist, sonst kann es für die meisten Benutzer nicht sichtbar sein.

Code-Beispiele

Countdown Text

-- Place this code in a LocalScript within a TextLabel/TextButton
local textLabel = script.Parent
-- Some colors we'll use with TextColor3
local colorNormal = Color3.new(0, 0, 0) -- black
local colorSoon = Color3.new(1, 0.5, 0.5) -- red
local colorDone = Color3.new(0.5, 1, 0.5) -- green
-- Loop infinitely
while true do
-- Count backwards from 10 to 1
for i = 10, 1, -1 do
-- Set the text
textLabel.Text = "Time: " .. i
-- Set the color based on how much time is left
if i > 3 then
textLabel.TextColor3 = colorNormal
else
textLabel.TextColor3 = colorSoon
end
task.wait(1)
end
textLabel.Text = "GO!"
textLabel.TextColor3 = colorDone
task.wait(2)
end
Game State Text

local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Place a StringValue called "GameState" in the ReplicatedStorage
local vGameState = ReplicatedStorage:WaitForChild("GameState")
-- Place this code in a TextLabel
local textLabel = script.Parent
-- Some colors we'll use with TextColor3
local colorNormal = Color3.new(0, 0, 0) -- black
local colorCountdown = Color3.new(1, 0.5, 0) -- orange
local colorRound = Color3.new(0.25, 0.25, 1) -- blue
-- We'll run this function to update the TextLabel as the state of the
-- game changes.
local function update()
-- Update the text
textLabel.Text = "State: " .. vGameState.Value
-- Set the color of the text based on the current game state
if vGameState.Value == "Countdown" then
textLabel.TextColor3 = colorCountdown
elseif vGameState.Value == "Round" then
textLabel.TextColor3 = colorRound
else
textLabel.TextColor3 = colorNormal
end
end
-- Pattern: update once when we start and also when vGameState changes
-- We should always see the most updated GameState.
update()
vGameState.Changed:Connect(update)

Zusammenfassung

Eigenschaften

Eigenschaften von GuiObject übernommenEigenschaften von GuiBase2d übernommen

Methoden

Methoden von GuiObject übernommen

Ereignisse

Ereignisse von GuiObject übernommenEreignisse von GuiBase2d übernommen

Eigenschaften

ContentText

Schreibgeschützt
Nicht repliziert
Parallel lesen

Dieses Eigenschaften-Fenster bietet eine Kopie von TextLabel.Text, die genau das enthält, was von der TextLabel gerendert wird. Dies ist nützlich, um Stil-Tags für reichlichen Text zu eliminieren.

Beispiel

Wenn TextLabel.RichText aktiviert ist, zeigt die Eigenschaft TextLabel.ContentText den Text an, wie er dem Spieler:inangezeigt wird.


<tbody>
<tr>
<td>falsch</td>
<td>\<b>Hallo,\<br/> Welt!\</b></td>
<td>\<b>Hallo,\<br/> Welt!\</b></td>
</tr>
<tr>
<td>wahr</td>
<td>\<b>Hallo,\<br/> Welt!\</b></td>
<td>Hallo, Welt!</td>
</tr>
</tbody>
ReichTextTextInhalts-Text
Verborgen
Nicht repliziert
Parallel lesen

Die Schriftart-Eigenschaft wählt eine der mehrere voreingestellten Schriftarten, mit denen der Text der Benutzeroberfläche gerendert wird. Einige Schriftarten haben kräftige,italic und/oder hellere Farbvariationen (da es keine Schriftart-Weight oder Schriftartstil-Eigenschaften gibt).

Mit Ausnahme der "Legacy"-Schrift, wird jede Schrift Text mit der Zeilenniveau gleich mit der TextLabel.TextSize Eigenschaftenrendern. Die "Code"-Schrift ist die einzige Monospace-Schrift. Sie hat die einzigartige Eigenschaft, dass jeder Charakter die genaue Breite und Höherate von 1:2 hat. Die Breite jedes Charakters beträgt etwa die Hälfte der Class.Text

Diese Eigenschaft wird mit der TextLabel.FontFace Eigenschaftensynchronisiert. Wenn Sie die Schriftart einstellen, wird die Schriftart auf Font.fromEnum(value) gesetzt.

Code-Beispiele

Cycle Font

local textLabel = script.Parent
while true do
-- Iterate over all the different fonts
for _, font in pairs(Enum.Font:GetEnumItems()) do
textLabel.Font = font
textLabel.Text = font.Name
task.wait(1)
end
end
Show All Fonts

local frame = script.Parent
-- Create a TextLabel displaying each font
for _, font in pairs(Enum.Font:GetEnumItems()) do
local textLabel = Instance.new("TextLabel")
textLabel.Name = font.Name
-- Set the text properties
textLabel.Text = font.Name
textLabel.Font = font
-- Some rendering properties
textLabel.TextSize = 24
textLabel.TextXAlignment = Enum.TextXAlignment.Left
-- Size the frame equal to the height of the text
textLabel.Size = UDim2.new(1, 0, 0, textLabel.TextSize)
-- Add to the parent frame
textLabel.Parent = frame
end
-- Layout the frames in a list (if they aren't already)
if not frame:FindFirstChildOfClass("UIListLayout") then
local uiListLayout = Instance.new("UIListLayout")
uiListLayout.Parent = frame
end

FontFace

Parallel lesen

Die FontFace-Eigenschaft ähnelt der Eigenschaften, aber erlaubt es, Schriften zu setzen, die in der Font-Liste nicht existieren.

Diese Eigenschaft wird mit der TextLabel.Font Eigenschaftensynchronisiert. Wenn SieFontFace einrichten, wird die Schriftart auf den entsprechenden Enumerie-Wert gesetzt, oder auf Enum.Font.Unknown wenn es keine Matches gibt.

LineHeight

Parallel lesen

Steuert die Höhe von Zeilen, als Vielfaches der Schriftgröße, indem Sie die Abstand zwischen Zeilen des Textes im TextLabel skalieren. Gültige Werte reichen von 1.0 bis 3.0, standardmäßig 1.0.

LocalizedText

Verborgen
Schreibgeschützt
Nicht repliziert
Parallel lesen

Dieses Eigenschaften legt fest, ob ein Class.TextLabel``Class.GuiBase2d.Localize oder nicht sein soll.

MaxVisibleGraphemes

Parallel lesen

Dieses Eigenschaftsteuerung kontrolliert die maximale Anzahl von Graphemen (oder Einheiten von Text), die auf dem TextLabel angezeigt werden. Es wird hauptsächlich als einfacher Weg zur Erstellung eines "Typwriter-Effekts" bereitgestellt, bei dem die Zeichen einzeln erscheinen.

Die Änderung der Eigenschaft ändert die Position oder Größe der sichtbaren Grapheme nicht - die Platzierung wird berechnet, als ob alle Grapheme sichtbar wären.

Das Setzen der Eigenschaft auf -1 deaktiviert das Limit und zeigt die Gesamtheit des TextLabel.Text .

Code-Beispiele

Typewriter Effect with MaxVisibleGraphemes

local TweenService = game:GetService("TweenService")
local textObject = script.Parent
local tweenInfo = TweenInfo.new(
4, -- it takes 4 seconds for the effect to complete
Enum.EasingStyle.Sine, -- typing starts fast and slows near the end
Enum.EasingDirection.Out
)
local tween = TweenService:Create(textObject, tweenInfo, {
-- Final value should be the total grapheme count
MaxVisibleGraphemes = utf8.len(textObject.ContentText),
})
tween:Play()
tween.Completed:Wait()
-- Reset the value so it can be tweened again
textObject.MaxVisibleGraphemes = -1

OpenTypeFeatures

Parallel lesen

OpenTypeFeaturesError

Schreibgeschützt
Nicht repliziert
Parallel lesen

RichText

Parallel lesen

Dieses Eigenschaft bestimmt, ob das TextLabel die TextLabel.Text -String mit reichlich Textformatierung rendert. Reicher Text verwendet einfache Markierungs-Tags, um Abschnitte der Zeile in Mutig, Kursiv, bestimmten Farben und mehr zu stylen.

Um reichlichen Text zu verwenden, füge einfach Formulierungs-Tags in die TextLabel.Text -String ein.

Text

Parallel lesen

Die Text-Eigenschaft bestimmt den Inhalt, der von der UI-Element rendert wird. Die visuellen Eigenschaften der Strings, die auf den Bildschirm gerendert werden, werden von Class.

Es ist möglich, Emoji (zum Beispiel, 😃) und andereSymbole zu rendern. Diese SpezialSymbole sind nicht vom TextLabel.TextColor3 Eigenschaft betroffen. Sie können in Script und LocalScript Objekten eingefügt werden, sowie in das Feld innerhalb der Eigenschaften-Fenster.

Dieses Eigenschaft kann neue Zeilennamen enthalten, ist aber nicht möglich, neue Zeilennamen innerhalb des Eigenschaften-Fensters zu tippen. Ähnlich ist es nicht möglich, dieses Eigenschaft ein Tab-Zeichen zu enthalten, aber es wird als Leertaste ausgegeben.

Code-Beispiele

Fading Banner

local TweenService = game:GetService("TweenService")
local textLabel = script.Parent
local content = {
"Welcome to my game!",
"Be sure to have fun!",
"Please give suggestions!",
"Be nice to other players!",
"Don't grief other players!",
"Check out the shop!",
"Tip: Don't die!",
}
local tweenInfo = TweenInfo.new(1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut)
local RNG = Random.new()
local fadeIn = TweenService:Create(textLabel, tweenInfo, {
TextTransparency = 0,
})
local fadeOut = TweenService:Create(textLabel, tweenInfo, {
TextTransparency = 1,
})
local lastIndex
while true do
-- Step 0: Fade out before doing anything
fadeOut:Play()
task.wait(tweenInfo.Time)
-- Step 1: pick content that wasn't the last displayed
local index
repeat
index = RNG:NextInteger(1, #content)
until lastIndex ~= index
-- Make sure we don't show the same thing next time
lastIndex = index
-- Step 2: show the content
textLabel.Text = content[index]
fadeIn:Play()
task.wait(tweenInfo.Time + 1)
end
"Kaboom!" Text

local textLabel = script.Parent
textLabel.Text = "Kaboom!"
while true do
for size = 5, 100, 5 do
textLabel.TextSize = size
textLabel.TextTransparency = size / 100
task.wait()
end
task.wait(1)
end
Show All Fonts

local frame = script.Parent
-- Create a TextLabel displaying each font
for _, font in pairs(Enum.Font:GetEnumItems()) do
local textLabel = Instance.new("TextLabel")
textLabel.Name = font.Name
-- Set the text properties
textLabel.Text = font.Name
textLabel.Font = font
-- Some rendering properties
textLabel.TextSize = 24
textLabel.TextXAlignment = Enum.TextXAlignment.Left
-- Size the frame equal to the height of the text
textLabel.Size = UDim2.new(1, 0, 0, textLabel.TextSize)
-- Add to the parent frame
textLabel.Parent = frame
end
-- Layout the frames in a list (if they aren't already)
if not frame:FindFirstChildOfClass("UIListLayout") then
local uiListLayout = Instance.new("UIListLayout")
uiListLayout.Parent = frame
end
Long Text Wrapping

local textLabel = script.Parent
-- This text wrapping demo is best shown on a 200x50 px rectangle
textLabel.Size = UDim2.new(0, 200, 0, 50)
-- Some content to spell out
local content = "Here's a long string of words that will "
.. "eventually exceed the UI element's width "
.. "and form line breaks. Useful for paragraphs "
.. "that are really long."
-- A function that will spell text out two characters at a time
local function spellTheText()
-- Iterate from 1 to the length of our content
for i = 1, content:len() do
-- Get a substring of our content: 1 to i
textLabel.Text = content:sub(1, i)
-- Color the text if it doesn't fit in our box
if textLabel.TextFits then
textLabel.TextColor3 = Color3.new(0, 0, 0) -- Black
else
textLabel.TextColor3 = Color3.new(1, 0, 0) -- Red
end
-- Wait a brief moment on even lengths
if i % 2 == 0 then
task.wait()
end
end
end
while true do
-- Spell the text with scale/wrap off
textLabel.TextWrapped = false
textLabel.TextScaled = false
spellTheText()
task.wait(1)
-- Spell the text with wrap on
textLabel.TextWrapped = true
textLabel.TextScaled = false
spellTheText()
task.wait(1)
-- Spell the text with text scaling on
-- Note: Text turns red (TextFits = false) once text has to be
-- scaled down in order to fit within the UI element.
textLabel.TextScaled = true
-- Note: TextWrapped is enabled implicitly when TextScaled = true
--textLabel.TextWrapped = true
spellTheText()
task.wait(1)
end
Emoji in Text

local textLabel = script.Parent
local moods = {
["happy"] = "😃",
["sad"] = "😢",
["neutral"] = "😐",
["tired"] = "😫",
}
while true do
for mood, face in pairs(moods) do
textLabel.Text = "I am feeling " .. mood .. "! " .. face
task.wait(1)
end
end

TextBounds

Schreibgeschützt
Nicht repliziert
Parallel lesen

Die "Nur-Lektüre"-Eigenschaft TextBounds gibt die absolute Größe des gerenderten Textes in Offsets wieder. In anderen Worten, wenn Sie versuchen, Text in ein Rectangle zu passen, würde diese Eigenschaft die minimale Größe des Rectangles wiedergeben, die Sie benötigen, um den Text einzupassen.

Mit TextService:GetTextSize() , kannst du vorhersagen, welche TextBounds auf einem TextLabel gegeben eine Stringsein, TextLabel.Font , TextLabel.TextSize und der Bildschirmgröße.

Code-Beispiele

Dynamic TextBox Size

local textBox = script.Parent
-- The smallest the TextBox will go
local minWidth, minHeight = 10, 10
-- Set alignment so our text doesn't wobble a bit while we type
textBox.TextXAlignment = Enum.TextXAlignment.Left
textBox.TextYAlignment = Enum.TextYAlignment.Top
local function updateSize()
textBox.Size = UDim2.new(0, math.max(minWidth, textBox.TextBounds.X), 0, math.max(minHeight, textBox.TextBounds.Y))
end
textBox:GetPropertyChangedSignal("TextBounds"):Connect(updateSize)

TextColor3

Parallel lesen

Dieses Eigenschaft bestimmt die Farbe des gesamten Textes, der von einem GUI Element rendert wird. Dieses Eigenschaft zusammen mit TextLabel.Font , TextLabel.TextSize und 1> Class.TextLabel.Transparency1> wird die visuellen Eigenschaften des Textes

Es ist wichtig, dass der Text einfach von Spielern gelesen werden kann! Stellen Sie sicher, dass die Farbe mit wenig bis keiner Saturation, wie weiß, grau oder schwarz, ausgewählt ist. Stellen Sie sicher, dass die Farbe Ihres Texts von der TextLabel.BackgroundColor3 des GUI-Elements kontrastiert wird. Wenn die Elemente eine transparente Hintergrund haben, versuc

Code-Beispiele

Vowel Detector

local textBox = script.Parent
local function hasVowels(str)
return str:lower():find("[aeiou]")
end
local function onTextChanged()
local text = textBox.Text
-- Check for vowels
if hasVowels(text) then
textBox.TextColor3 = Color3.new(0, 0, 0) -- Black
else
textBox.TextColor3 = Color3.new(1, 0, 0) -- Red
end
end
textBox:GetPropertyChangedSignal("Text"):Connect(onTextChanged)
TextBox Secret Word

-- Place this code in a LocalScript inside a TextBox
local textBox = script.Parent
local secretWord = "roblox"
local colorNormal = Color3.new(1, 1, 1) -- white
local colorWrong = Color3.new(1, 0, 0) -- red
local colorCorrect = Color3.new(0, 1, 0) -- green
-- Initialize the state of the textBox
textBox.ClearTextOnFocus = true
textBox.Text = ""
textBox.Font = Enum.Font.Code
textBox.PlaceholderText = "What is the secret word?"
textBox.BackgroundColor3 = colorNormal
local function onFocused()
textBox.BackgroundColor3 = colorNormal
end
local function onFocusLost(enterPressed, _inputObject)
if enterPressed then
local guess = textBox.Text
if guess == secretWord then
textBox.Text = "ACCESS GRANTED"
textBox.BackgroundColor3 = colorCorrect
else
textBox.Text = "ACCESS DENIED"
textBox.BackgroundColor3 = colorWrong
end
else
-- The player stopped editing without pressing Enter
textBox.Text = ""
textBox.BackgroundColor3 = colorNormal
end
end
textBox.FocusLost:Connect(onFocusLost)
textBox.Focused:Connect(onFocused)
Countdown Text

-- Place this code in a LocalScript within a TextLabel/TextButton
local textLabel = script.Parent
-- Some colors we'll use with TextColor3
local colorNormal = Color3.new(0, 0, 0) -- black
local colorSoon = Color3.new(1, 0.5, 0.5) -- red
local colorDone = Color3.new(0.5, 1, 0.5) -- green
-- Loop infinitely
while true do
-- Count backwards from 10 to 1
for i = 10, 1, -1 do
-- Set the text
textLabel.Text = "Time: " .. i
-- Set the color based on how much time is left
if i > 3 then
textLabel.TextColor3 = colorNormal
else
textLabel.TextColor3 = colorSoon
end
task.wait(1)
end
textLabel.Text = "GO!"
textLabel.TextColor3 = colorDone
task.wait(2)
end
Game State Text

local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Place a StringValue called "GameState" in the ReplicatedStorage
local vGameState = ReplicatedStorage:WaitForChild("GameState")
-- Place this code in a TextLabel
local textLabel = script.Parent
-- Some colors we'll use with TextColor3
local colorNormal = Color3.new(0, 0, 0) -- black
local colorCountdown = Color3.new(1, 0.5, 0) -- orange
local colorRound = Color3.new(0.25, 0.25, 1) -- blue
-- We'll run this function to update the TextLabel as the state of the
-- game changes.
local function update()
-- Update the text
textLabel.Text = "State: " .. vGameState.Value
-- Set the color of the text based on the current game state
if vGameState.Value == "Countdown" then
textLabel.TextColor3 = colorCountdown
elseif vGameState.Value == "Round" then
textLabel.TextColor3 = colorRound
else
textLabel.TextColor3 = colorNormal
end
end
-- Pattern: update once when we start and also when vGameState changes
-- We should always see the most updated GameState.
update()
vGameState.Changed:Connect(update)

TextDirection

Parallel lesen

TextFits

Schreibgeschützt
Nicht repliziert
Parallel lesen

Die TextFits ist eine read-only-Eigenschaft, die falsch ist, wenn TextLabel.Text Inhalt nicht in das GuiBase2d.AbsoluteSize rendert, wenn TextLabel.TextWrapped

Code-Beispiele

Long Text Wrapping

local textLabel = script.Parent
-- This text wrapping demo is best shown on a 200x50 px rectangle
textLabel.Size = UDim2.new(0, 200, 0, 50)
-- Some content to spell out
local content = "Here's a long string of words that will "
.. "eventually exceed the UI element's width "
.. "and form line breaks. Useful for paragraphs "
.. "that are really long."
-- A function that will spell text out two characters at a time
local function spellTheText()
-- Iterate from 1 to the length of our content
for i = 1, content:len() do
-- Get a substring of our content: 1 to i
textLabel.Text = content:sub(1, i)
-- Color the text if it doesn't fit in our box
if textLabel.TextFits then
textLabel.TextColor3 = Color3.new(0, 0, 0) -- Black
else
textLabel.TextColor3 = Color3.new(1, 0, 0) -- Red
end
-- Wait a brief moment on even lengths
if i % 2 == 0 then
task.wait()
end
end
end
while true do
-- Spell the text with scale/wrap off
textLabel.TextWrapped = false
textLabel.TextScaled = false
spellTheText()
task.wait(1)
-- Spell the text with wrap on
textLabel.TextWrapped = true
textLabel.TextScaled = false
spellTheText()
task.wait(1)
-- Spell the text with text scaling on
-- Note: Text turns red (TextFits = false) once text has to be
-- scaled down in order to fit within the UI element.
textLabel.TextScaled = true
-- Note: TextWrapped is enabled implicitly when TextScaled = true
--textLabel.TextWrapped = true
spellTheText()
task.wait(1)
end

TextScaled

Parallel lesen

Statt TextScaled zu verwenden, empfehlen wir Ihnen, AutomaticSize zu verwenden, eine neue Methode, die die visuelle Ansicht dynamisch skaliert, um Ihnen das beste visuelle Ergebnis zu liefern.

Die TextScaled-Eigenschaft bestimmt, ob der Text so skaliert wird, dass er den gesamten Platzfüllt. Wenn dies aktiviert ist, wird TextLabel.TextSize ignoriert und TextLabel.TextWrapped automatisch aktiviert. Diese Eigenschaft ist nützlich für die Text-Renderung von UI-Elementen innerhalb von BillboardGuis .

Wenn dieses Eigenschaft für Screen-Space-UI verwendet wird, kann es sinnvoll sein, ein UITextSizeConstraint zu verwenden, um die Reichweite der möglichen Textgrößen zu begrenzen.

TextSkaliert und Automatische Größe

Es wird empfohlen, dass Entwickler die Verwendung von TextScaled vermeiden und die UI anpassen, um stattdessen die Eigenschaft AutomaticSize zu nutzen. Hier sind die Haupterschiede zwischen den beiden Eigenschaften:

  • TextScaled skaliert den Inhalt (Text), um die UI unterzubringen. Ohne sorgfältige Überlegung kann einige Textzeilen unleserlich werden, wenn er zu klein skaliert wird.
  • AutomaticSize passt die UI an, um Inhalte unterzubringen.

Mit der automatischen Größe können Sie Ihre UI anpassen, um den Inhalt (Text) unterzubringen, während Sie eine konstante Schriftgröße verwenden. Weitere Informationen darüber, wie Sie die automatische Größe verwenden, finden Sie im Artikel "Automatische Schriftgröße".

Wir schlagen vor, dass Sie beide TextScaled und AutomaticSize nicht auf demselben UI-Objekt anwenden. Wenn Sie beide Eigenschaften anwenden:

  • AutomaticSize bestimmt die maximale Menge verfügbarer Platz, die ein GuiObject verwenden kann (in diesem Fall, Text)
  • TextScaled verwendet den verfügbaren Platz, der von AutomaticSize bestimmt ist, um die Schriftgröße anzupassen, um den verfügbaren Platz zu füllen, was bis zum maximalen Schriftgrößen (100) erweitert wird, wenn keine Größenbeschränkungen vorhanden sind
  • Das Ergebnis wird sein: Text geht auf 100 Zeichengröße und das UI-Objekt wird sich erweitern, um diesen Text zu fassen

Das gleichzeitige Verwenden von both AutomaticSize und TextScaled kann zu erheblichen Skalierungsdifferen führen, als wenn AutomaticSize ausgeschaltet ist.

Code-Beispiele

Long Text Wrapping

local textLabel = script.Parent
-- This text wrapping demo is best shown on a 200x50 px rectangle
textLabel.Size = UDim2.new(0, 200, 0, 50)
-- Some content to spell out
local content = "Here's a long string of words that will "
.. "eventually exceed the UI element's width "
.. "and form line breaks. Useful for paragraphs "
.. "that are really long."
-- A function that will spell text out two characters at a time
local function spellTheText()
-- Iterate from 1 to the length of our content
for i = 1, content:len() do
-- Get a substring of our content: 1 to i
textLabel.Text = content:sub(1, i)
-- Color the text if it doesn't fit in our box
if textLabel.TextFits then
textLabel.TextColor3 = Color3.new(0, 0, 0) -- Black
else
textLabel.TextColor3 = Color3.new(1, 0, 0) -- Red
end
-- Wait a brief moment on even lengths
if i % 2 == 0 then
task.wait()
end
end
end
while true do
-- Spell the text with scale/wrap off
textLabel.TextWrapped = false
textLabel.TextScaled = false
spellTheText()
task.wait(1)
-- Spell the text with wrap on
textLabel.TextWrapped = true
textLabel.TextScaled = false
spellTheText()
task.wait(1)
-- Spell the text with text scaling on
-- Note: Text turns red (TextFits = false) once text has to be
-- scaled down in order to fit within the UI element.
textLabel.TextScaled = true
-- Note: TextWrapped is enabled implicitly when TextScaled = true
--textLabel.TextWrapped = true
spellTheText()
task.wait(1)
end

TextSize

Parallel lesen

Die TextSize-Eigenschaft bestimmt die Höhe in Offsets einer gerenderten Textzeile. Die Einheit ist in Offsets, nicht Punkten (was in den meisten Dokumenten-Editor-Programmen verwendet wird). Es ist jedoch wert, beachten, dass die Zeilehöhe des "Legacy"-Fonts anders ist und nicht genau mit dieser Eigenschaft übereinstimmt.

Diese Eigenschaft und TextLabel.TextColor3 , TextLabel.TextTransparency , TextLabel.TextStrokeColor3 und 1> Class.TextLabel.TextStrokeTransparency1> beeinflussen die Art und Weise, wie der Text gerendert wird.

Dieses Eigenschaft überschreitet TextLabel.FontSize, da es eine Zahl ist und nicht ein Enumer ist. Intern verwendet Roblox mehrere Sätze vorbereiteter Zeichenbilder für jede Größe jedes Schrift Typs. Es wählt die nächste Größe aus TextSize und skaliert dann dieses Zeichenbilder Typs, um Text zu rendern. Bevor die Einführung dieser Eigenschaftenmöglich

Code-Beispiele

"Kaboom!" Text

local textLabel = script.Parent
textLabel.Text = "Kaboom!"
while true do
for size = 5, 100, 5 do
textLabel.TextSize = size
textLabel.TextTransparency = size / 100
task.wait()
end
task.wait(1)
end

TextStrokeColor3

Parallel lesen

Die TextStrokeColor3-Eigenschaft setzt die Farbe des Stocks oder der Umriss, die in der rend染text. Dieser Eigenschaft und TextLabel.TextStrokeTransparency ermitteln die visuellen Eigenschaften des Textstocks.

Textstick wird vor normalem Text gerendert und ist einfach 4 Renderings des gleichen Textes in +/- 1 Pixel-Versatz in jede Richtung. Textstick-Renderung funktioniert unabhängig und identisch zu TextLabel.TextColor3 und TextLabel.TextTransparency.

Code-Beispiele

Text Highlight Oscillation

local textLabel = script.Parent
-- How fast the highlight ought to blink
local freq = 2
-- Set to yellow highlight color
textLabel.TextStrokeColor3 = Color3.new(1, 1, 0)
while true do
-- math.sin oscillates from -1 to 1, so we change the range to 0 to 1:
local transparency = math.sin(workspace.DistributedGameTime * math.pi * freq) * 0.5 + 0.5
textLabel.TextStrokeTransparency = transparency
task.wait()
end

TextStrokeTransparency

Parallel lesen

Die TextStrokeTransparency-Eigenschaft setzt die Transparenz des Stocks oder Umrisses des gerenderten Textes. Diese Eigenschaft und TextLabel.TextStrokeColor3 ermitteln die visuellen Eigenschaften des Textstocks.

Textstick wird vor normalem Text gerendert und ist einfach 4 Renderings des gleichen Textes in +/- 1 Pixel-Versatz in jede Richtung. Textstick-Renderung funktioniert unab

Code-Beispiele

Text Highlight Oscillation

local textLabel = script.Parent
-- How fast the highlight ought to blink
local freq = 2
-- Set to yellow highlight color
textLabel.TextStrokeColor3 = Color3.new(1, 1, 0)
while true do
-- math.sin oscillates from -1 to 1, so we change the range to 0 to 1:
local transparency = math.sin(workspace.DistributedGameTime * math.pi * freq) * 0.5 + 0.5
textLabel.TextStrokeTransparency = transparency
task.wait()
end

TextTransparency

Parallel lesen

Die TextColor3-Eigenschaft bestimmt die Transparenz des gesamten Textes, der von einem UI-Element gerendert wird. Diese Eigenschaft zusammen mit TextLabel.Font , TextLabel.TextSize und TextLabel.TextColor3 wird die visuellen Eigenschaften des Texts bestimmen. Der Text wird nach dem Textstift ( 1> Class.TextLabel

Fading Text in der Verwendung einer numerischen For-Loop ist eine fantastische Möglichkeit, den Aufmerksamkeit eines Spieler:inauf Text, der auf dem Bildschirm angezeigt wird, zu ziehen.


-- Count backwards from 1 to 0, decrementing by 0.1
for i = 1, 0, -0.1 do
textLabel.TextTransparency = i
task.wait(0.1)
end

Code-Beispiele

Fading Banner

local TweenService = game:GetService("TweenService")
local textLabel = script.Parent
local content = {
"Welcome to my game!",
"Be sure to have fun!",
"Please give suggestions!",
"Be nice to other players!",
"Don't grief other players!",
"Check out the shop!",
"Tip: Don't die!",
}
local tweenInfo = TweenInfo.new(1, Enum.EasingStyle.Sine, Enum.EasingDirection.InOut)
local RNG = Random.new()
local fadeIn = TweenService:Create(textLabel, tweenInfo, {
TextTransparency = 0,
})
local fadeOut = TweenService:Create(textLabel, tweenInfo, {
TextTransparency = 1,
})
local lastIndex
while true do
-- Step 0: Fade out before doing anything
fadeOut:Play()
task.wait(tweenInfo.Time)
-- Step 1: pick content that wasn't the last displayed
local index
repeat
index = RNG:NextInteger(1, #content)
until lastIndex ~= index
-- Make sure we don't show the same thing next time
lastIndex = index
-- Step 2: show the content
textLabel.Text = content[index]
fadeIn:Play()
task.wait(tweenInfo.Time + 1)
end
"Kaboom!" Text

local textLabel = script.Parent
textLabel.Text = "Kaboom!"
while true do
for size = 5, 100, 5 do
textLabel.TextSize = size
textLabel.TextTransparency = size / 100
task.wait()
end
task.wait(1)
end

TextTruncate

Parallel lesen

Steuert die Kürzung des Textes, die in diesem TextLabel angezeigt wird.

TextWrapped

Parallel lesen

Wenn aktiviert, wird der Text auf mehreren Zeilen innerhalb eines GUI Elements so dargestellt, dass TextLabel.TextBounds niemals die GuiBase2d.AbsoluteSize des UI-Elements überschreiten wird.

Dies wird durch das Aufteilen langer Zeilen in mehrere Zeilen erreicht. Zeilennachweise bevorzugen Weißraum; wenn ein langes unbrokenes Wort die Breite des Elements überschreitet, wird das Wort in mehrere Zeilen aufgeteilt.

Wenn weitere Zeilensplits die vertikale Höhe des Texts (die Y-Komponente von TextLabel.TextBounds ) überschreitet, wird diese Zeile nicht gerendert, wenn die vertikale Höhe des Elements (die Y-Komponente von GuiBase2d.AbsoluteSize ) nicht überschreitet.

Code-Beispiele

Long Text Wrapping

local textLabel = script.Parent
-- This text wrapping demo is best shown on a 200x50 px rectangle
textLabel.Size = UDim2.new(0, 200, 0, 50)
-- Some content to spell out
local content = "Here's a long string of words that will "
.. "eventually exceed the UI element's width "
.. "and form line breaks. Useful for paragraphs "
.. "that are really long."
-- A function that will spell text out two characters at a time
local function spellTheText()
-- Iterate from 1 to the length of our content
for i = 1, content:len() do
-- Get a substring of our content: 1 to i
textLabel.Text = content:sub(1, i)
-- Color the text if it doesn't fit in our box
if textLabel.TextFits then
textLabel.TextColor3 = Color3.new(0, 0, 0) -- Black
else
textLabel.TextColor3 = Color3.new(1, 0, 0) -- Red
end
-- Wait a brief moment on even lengths
if i % 2 == 0 then
task.wait()
end
end
end
while true do
-- Spell the text with scale/wrap off
textLabel.TextWrapped = false
textLabel.TextScaled = false
spellTheText()
task.wait(1)
-- Spell the text with wrap on
textLabel.TextWrapped = true
textLabel.TextScaled = false
spellTheText()
task.wait(1)
-- Spell the text with text scaling on
-- Note: Text turns red (TextFits = false) once text has to be
-- scaled down in order to fit within the UI element.
textLabel.TextScaled = true
-- Note: TextWrapped is enabled implicitly when TextScaled = true
--textLabel.TextWrapped = true
spellTheText()
task.wait(1)
end

TextXAlignment

Parallel lesen

TextXAlignment bestimmt die horizontale Ausrichtung (X-Achse) des Textes, der innerhalb des Platzes eines UI-Elements gerendert wird. Es funktioniert ähnlich wie die Eigenschaften, mit linken, rechten und mittleren Werten (es gibt keine Rechtfertigungsoption). Für Linke und Rechte wird der Text so gerendert, dass die linken/rechten Textkanten die Kante des UI-Elementrechtecken berühren. Für Zentrum wird jede Zeile des Textes in der Mitte des UI-Elementre

Dieses Eigenschaft wird in Zusammenarbeit mit TextLabel.TextYAlignment verwendet, um das Textausrichtung auf beiden Achsen vollständig zu bestimmen. Dieses Eigenschaft wird die Lesbarkeits-Eigenschaften TextLabel.TextBounds und TextLabel.TextFits nicht beeinflussen.

Code-Beispiele

Text Alignment

-- Paste this in a LocalScript within a TextLabel/TextButton/TextBox
local textLabel = script.Parent
local function setAlignment(xAlign, yAlign)
textLabel.TextXAlignment = xAlign
textLabel.TextYAlignment = yAlign
textLabel.Text = xAlign.Name .. " + " .. yAlign.Name
end
while true do
-- Iterate over both TextXAlignment and TextYAlignment enum items
for _, yAlign in pairs(Enum.TextYAlignment:GetEnumItems()) do
for _, xAlign in pairs(Enum.TextXAlignment:GetEnumItems()) do
setAlignment(xAlign, yAlign)
task.wait(1)
end
end
end

TextYAlignment

Parallel lesen

TextYAlignment bestimmt die vertikale Ausrichtung (Y-Achse) des Textes, der in einem Platzgerendert wird. Für oben und unten wird der Text so gerendert, dass die oberen/unteren Textgrenzen die Kante des UI-Element-Rechtecken berühren. Für Center wird der Text so gerendert, dass es einen gleichmäßigen Raum von den oberen Textgrenzen des Textes bis zur Spitze des Elements und den unteren Textgrenzen des Textes bis zur Spitze des Elements gibt.

Dieses Eigenschaft wird in Zusammenarbeit mit TextLabel.TextXAlignment verwendet, um das Textausrichtung auf beiden Achsen vollständig zu bestimmen. Dieses Eigenschaft wird die read-only-Eigenschaften TextLabel.TextBounds und TextLabel.TextFits nicht beeinflussen.

Code-Beispiele

Text Alignment

-- Paste this in a LocalScript within a TextLabel/TextButton/TextBox
local textLabel = script.Parent
local function setAlignment(xAlign, yAlign)
textLabel.TextXAlignment = xAlign
textLabel.TextYAlignment = yAlign
textLabel.Text = xAlign.Name .. " + " .. yAlign.Name
end
while true do
-- Iterate over both TextXAlignment and TextYAlignment enum items
for _, yAlign in pairs(Enum.TextYAlignment:GetEnumItems()) do
for _, xAlign in pairs(Enum.TextXAlignment:GetEnumItems()) do
setAlignment(xAlign, yAlign)
task.wait(1)
end
end
end

Methoden

Ereignisse