Engine-Klasse
TextLabel
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
Zusammenfassung
Eigenschaften
Code-Beispiele
Spielstatus-Text
local ReplicatedStorage = game:GetService("ReplicatedStorage")
-- Platziere einen StringValue namens "GameState" im ReplicatedStorage
local vGameState = ReplicatedStorage:WaitForChild("GameState")
-- Platziere diesen Code in ein TextLabel
local textLabel = script.Parent
-- Einige Farben, die wir mit TextColor3 verwenden werden
local colorNormal = Color3.new(0, 0, 0) -- schwarz
local colorCountdown = Color3.new(1, 0.5, 0) -- orange
local colorRound = Color3.new(0.25, 0.25, 1) -- blau
-- Wir werden diese Funktion ausführen, um das TextLabel zu aktualisieren, während sich der Status des
-- Spiels ändert.
local function update()
-- Aktualisiere den Text
textLabel.Text = "Status: " .. vGameState.Value
-- Setze die Farbe des Textes basierend auf dem aktuellen Spielstatus
if vGameState.Value == "Countdown" then
textLabel.TextColor3 = colorCountdown
elseif vGameState.Value == "Round" then
textLabel.TextColor3 = colorRound
else
textLabel.TextColor3 = colorNormal
end
end
-- Muster: einmal aktualisieren, wenn wir starten und auch wenn vGameState sich ändert
-- Wir sollten immer den aktuellsten GameState sehen.
update()
vGameState.Changed:Connect(update)API-Referenz
Eigenschaften
Font
Code-Beispiele
Alle Schriftarten anzeigen
local frame = script.Parent
-- Erstelle ein TextLabel, das jede Schriftart anzeigt
for _, font in pairs(Enum.Font:GetEnumItems()) do
local textLabel = Instance.new("TextLabel")
textLabel.Name = font.Name
-- Setze die Text-Eigenschaften
textLabel.Text = font.Name
textLabel.Font = font
-- Einige Rendereigenschaften
textLabel.TextSize = 24
textLabel.TextXAlignment = Enum.TextXAlignment.Left
-- Setze die Größe des Rahmens gleich der Höhe des Textes
textLabel.Size = UDim2.new(1, 0, 0, textLabel.TextSize)
-- Füge es dem übergeordneten Rahmen hinzu
textLabel.Parent = frame
end
-- Ordne die Rahmen in einer Liste an (falls dies nicht bereits geschehen ist)
if not frame:FindFirstChildOfClass("UIListLayout") then
local uiListLayout = Instance.new("UIListLayout")
uiListLayout.Parent = frame
endSchriftart umschalten
local textLabel = script.Parent
while true do
-- Über alle verschiedenen Schriftarten iterieren
for _, font in pairs(Enum.Font:GetEnumItems()) do
textLabel.Font = font
textLabel.Text = font.Name
task.wait(1)
end
endFontSize
Text
Code-Beispiele
Fading Banner
local TweenService = game:GetService("TweenService")
local textLabel = script.Parent
local content = {
"Willkommen in meinem Spiel!",
"Habt Spaß!",
"Bitte gebt Vorschläge!",
"Seid nett zu anderen Spielern!",
"Grieft keine anderen Spieler!",
"Schaut euch den Shop an!",
"Tipp: Stirbt nicht!",
}
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
-- Schritt 0: Ausblenden, bevor etwas gemacht wird
fadeOut:Play()
task.wait(tweenInfo.Time)
-- Schritt 1: Wähle einen Inhalt, der nicht zuletzt angezeigt wurde
local index
repeat
index = RNG:NextInteger(1, #content)
until lastIndex ~= index
-- Stelle sicher, dass wir nicht das gleiche nächste zeigen
lastIndex = index
-- Schritt 2: Zeige den Inhalt
textLabel.Text = content[index]
fadeIn:Play()
task.wait(tweenInfo.Time + 1)
endEmoji im Text
local textLabel = script.Parent
local moods = {
["happy"] = "😃",
["sad"] = "😢",
["neutral"] = "😐",
["tired"] = "😫",
}
while true do
for mood, face in pairs(moods) do
textLabel.Text = "Ich fühle mich " .. mood .. "! " .. face
task.wait(1)
end
endTextBounds
Code-Beispiele
Dynamische TextBox-Größe
local textBox = script.Parent
-- Die kleinste Größe, die die TextBox haben kann
local minWidth, minHeight = 10, 10
-- Ausrichtung setzen, damit unser Text beim Tippen nicht wackelt
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)TextColor
TextColor3
Code-Beispiele
Countdown-Text
-- Platziere diesen Code in einem LocalScript innerhalb eines TextLabel/TextButton
local textLabel = script.Parent
-- Einige Farben, die wir mit TextColor3 verwenden werden
local colorNormal = Color3.new(0, 0, 0) -- schwarz
local colorSoon = Color3.new(1, 0.5, 0.5) -- rot
local colorDone = Color3.new(0.5, 1, 0.5) -- grün
-- Endlos schleifen
while true do
-- Rückwärts von 10 bis 1 zählen
for i = 10, 1, -1 do
-- Setze den Text
textLabel.Text = "Zeit: " .. i
-- Setze die Farbe basierend darauf, wie viel Zeit verbleibt
if i > 3 then
textLabel.TextColor3 = colorNormal
else
textLabel.TextColor3 = colorSoon
end
task.wait(1)
end
textLabel.Text = "Los!"
textLabel.TextColor3 = colorDone
task.wait(2)
endTextSize
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)
endTextStrokeTransparency
Code-Beispiele
Text-Hervorhebungs-Oszillation
local textLabel = script.Parent
-- Wie schnell die Hervorhebung blinken soll
local freq = 2
-- Auf gelbe Hervorhebungsfarbe setzen
textLabel.TextStrokeColor3 = Color3.new(1, 1, 0)
while true do
-- math.sin oszilliert von -1 bis 1, also ändern wir den Bereich auf 0 bis 1:
local transparency = math.sin(workspace.DistributedGameTime * math.pi * freq) * 0.5 + 0.5
textLabel.TextStrokeTransparency = transparency
task.wait()
endTextWrap
TextWrapped
Code-Beispiele
Lange Textumbruch
local textLabel = script.Parent
-- Diese Textumbruch-Demo zeigt sich am besten auf einem 200x50 px Rechteck
textLabel.Size = UDim2.new(0, 200, 0, 50)
-- Inhalt zum Ausschreiben
local content = "Hier ist eine lange Zeichenkette von Wörtern, die "
.. "schließlich die Breite des UI-Elements überschreiten wird "
.. "und Zeilenumbrüche bilden. Nützlich für Absätze "
.. "die wirklich lang sind."
-- Eine Funktion, die Text zwei Zeichen auf einmal ausschreibt
local function spellTheText()
-- Von 1 bis zur Länge unseres Inhalts iterieren
for i = 1, content:len() do
-- Einen Teilstring unseres Inhalts bekommen: 1 bis i
textLabel.Text = content:sub(1, i)
-- Färbe den Text, wenn er nicht in unser Feld passt
if textLabel.TextFits then
textLabel.TextColor3 = Color3.new(0, 0, 0) -- Schwarz
else
textLabel.TextColor3 = Color3.new(1, 0, 0) -- Rot
end
-- Warte einen kurzen Moment bei geraden Längen
if i % 2 == 0 then
task.wait()
end
end
end
while true do
-- Den Text mit deaktiviertem Scale/Wrap ausgeben
textLabel.TextWrapped = false
textLabel.TextScaled = false
spellTheText()
task.wait(1)
-- Den Text mit aktiviertem Wrap ausgeben
textLabel.TextWrapped = true
textLabel.TextScaled = false
spellTheText()
task.wait(1)
-- Den Text mit aktivierter Textskalierung ausgeben
-- Hinweis: Der Text wird rot (TextFits = false), sobald der Text
-- verkleinert werden muss, um innerhalb des UI-Elements zu passen.
textLabel.TextScaled = true
-- Hinweis: TextWrapped ist implizit aktiviert, wenn TextScaled = true
--textLabel.TextWrapped = true
spellTheText()
task.wait(1)
endTextXAlignment
Code-Beispiele
Textausrichtung
-- Fügen Sie dies in ein LocalScript innerhalb eines TextLabel/TextButton/TextBox ein
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
-- Über sowohl TextXAlignment als auch TextYAlignment Enum-Elemente iterieren
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