TextLabel

Pokaż przestarzałe

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

TextLabel renderuje prostokąt, podobny do Frame , z tekstem stylizowanym. Prostokąt może być używany do określenia granic tekstu, skalowania tekstu ( TextLabel.TextScaled ) i zapisywania ( TextLabel.TextWrapped , 1>

Ta klasa zawiera właściwości, które kontrolują wygląd tekstu, takie jak TextLabel.Font i TextLabel.TextColor3. Wszystkie teksty renderowane przez jedną etykietę tekstową będą miały te same właściwości wizualne; wiele obiektów etykiet tekstowych musi być używanych, ab

TextService:GetTextSize() można użyć do uzyskania rozmiaru (granicy) tekstu, który zostanie renderowany w TextLabel z podanym rozmiarem, czcionką i rozmiarem ramy.

Przedmiot UITextSizeConstraint można użyć do ograniczenia rozmiaru tekstu z włączonym TextLabel.TextScaled . Rozmiar tekstu powinien być nie niższy niż 9, w przeciwnym razie może nie być widoczny dla większości użytkowników.

Przykłady kodu

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)

Podsumowanie

Właściwości

Właściwości odziedziczeni z: GuiObjectWłaściwości odziedziczeni z: GuiBase2d

Metody

Metody odziedziczeni z: GuiObject

Zdarzenia

Zdarzenia odziedziczeni z: GuiObjectZdarzenia odziedziczeni z: GuiBase2d

Właściwości

ContentText

Tylko do odczytu
Bez replikacji
Odczyt równoległy

Ten parametr dostarcza kopię TextLabel.Text, która zawiera dokładnie to, co jest renderowane przez TextLabel. Jest to przydatne do eliminacji stylowych tagów używanych do bogatego tekstu.

Przykład

Gdy TextLabel.RichText jest włączony, właściwość TextLabel.ContentText pokazuje tekst tak, jak wygląda na graczu.


<tbody>
<tr>
<td>fałszywy</td>
<td>\<b>Witaj, świat!\</b></td>
<td>\<b>Witaj, świat!\</b></td>
</tr>
<tr>
<td>prawdziwy</td>
<td>\<b>Witaj, świat!\</b></td>
<td>Cześć, świat!</td>
</tr>
</tbody>
Z bogatym tekstemTekstTekst treści
Ukryte
Bez replikacji
Odczyt równoległy

Właściwość czcionki wybiera jedną z kilku zapisów czcionek, z których element UI renderuje tekst. Niektóre czcionki mają swoje warianty wielkości i / lub stylu (ponieważ nie ma właściwości wagi czcionki lub stylu).

Poza czcionką "Dziedzictwo", każda czcionka będzie renderować tekst z wysokością linii równej z właściwością TextLabel.TextSize. Czcionka "Kod" jest jedyną czcionką monospace. Ma unikalną właściwość, że każdy znak ma dokładnie tę samą szerokość i wysokość proporcjonalnej 1:2

Ta właściwość jest zsynchronizowana z właściwością TextLabel.FontFace. Gdy ustawisz czcionkę, czcionka zostanie ustawiona na Font.fromEnum(value).

Przykłady kodu

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

Odczyt równoległy

Właściwość FontFace jest podobna do właściwościFont, ale umożliwia ustawienie czcionek, które nie istnieją w Font枚.

Ta właściwość jest zsynchronizowana z właściwością TextLabel.Font. Gdy ustawiaszFontFace,Font jest ustawiony na odpowiednią wartość enum lub Enum.Font.Unknown jeśli nie ma żadnych dopasów.

LineHeight

Odczyt równoległy

Kontroluje wysokość linii, jako liczbę rozmiaru czcionki, poprzez skalowanie przestrzeni między liniami tekstu w TextLabel. Wartości w zakresie od 1.0 do 3.0, domyślnie 1.0.

LocalizedText

Ukryte
Tylko do odczytu
Bez replikacji
Odczyt równoległy

Ten parametr ustawia, czy TextLabel powinien być GuiBase2d.Localize lub nie.

MaxVisibleGraphemes

Odczyt równoległy

To właściwość kontroluje maksymalną liczbę grafemów (lub jednostek tekstu), które są wyświetlane na TextLabel . Jest ona dostarczana głównie jako łatwy sposób na stworzenie efektu "typowego pisania", w którym znaki pojawiają się jeden po drugim.

Zmienianie właściwości nie zmienia pozycji lub rozmiaru widocznych grafem - układ zostanie obliczony, jakby wszystkie grafemy były widoczne.

Ustawienie właściwości na -1 wyłącza ograniczenie i pokazuje całość TextLabel.Text .

Przykłady kodu

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

Odczyt równoległy

OpenTypeFeaturesError

Tylko do odczytu
Bez replikacji
Odczyt równoległy

RichText

Odczyt równoległy

Ten właściwość określa, czy TextLabel renderuje TextLabel.Text strungę używającą bogatej formy tekstu. Bogate tekstu używa proste tagi znaczników, aby stylować sekcje strungi w odwaga, podkreślenie, kolory i wiele więcej.

Aby użyć bogatego tekstu, po prostu włącz tagi formatowania w TextLabel.Text ciąg.

Text

Odczyt równoległy

Właściwość tekstu określa treść renderowaną przez element UI. Właściwości wizualne linii renderowanej na ekranie są określane przez Class.Text

Możliwe jest renderowanie emoji (na przykład, 😃) i innych symboli. Te specjalne symbole nie są objęte właściwością TextLabel.TextColor3. Można je wkleić do Script i LocalScript obiektów, a także pola w oknie Właściwości.

Właściwość może zawierać nowe znaki nowej linii, ale nie jest możliwe wpisywanie nowych znaków nowej linii w oknie Właściwości. Podobnie, właściwość może zawierać znak tablicy, ale będzie renderowana jako przestrzeń zamiast tego.

Przykłady kodu

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

Tylko do odczytu
Bez replikacji
Odczyt równoległy

Właściwość TextBounds odczytywana odzwierciedla rozmiar tekstu renderowanego w odległych od siebie kątach. Innymi słowy, jeśli próbowałbyś dostosować tekst do kształtu prostokąta, ta właściwość odzwierciedlałaby minimum wymiarów prostokąta, które są niezbędne do dostosowania tekstu.

Używając TextService:GetTextSize() , możesz przewidzieć, co będzie na tekstowym polu wyboru, TextLabel.Font , TextLabel.TextSize i rozmiar ramy.

Przykłady kodu

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

Odczyt równoległy

Ten właściwość określa kolor całego tekstu renderowanego przez element GUI . Ta właściwość wraz z TextLabel.Font , TextLabel.TextSize i 2>Class.TextLabel.Transparency2> będzie określać właściwości wizualne tek

Ważne jest, aby tekst łatwo czytany przez graczy! Upewnij się, że wybierasz kolory z niską nasyceniem, takie jak biały, szary lub czarny. Upewnij się, że kolor tekstu jest kontrastowany przez TextLabel.BackgroundColor3 GUI. Jeśli element ma białą podstawę, spróbuj zastosować

Przykłady kodu

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

Odczyt równoległy

TextFits

Tylko do odczytu
Bez replikacji
Odczyt równoległy

TextFits jest własnością czytelną, która jest fałszywa, jeśli TextLabel.Text zawartość nie pasuje w GuiBase2d.AbsoluteSize kiedy renderowane jest. Jeśli Class.

Przykłady kodu

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

Odczyt równoległy

Zamiast używać TextScaled, zalecamy użyć AutomaticSize, nowej metody do dynamicznego rozmiarowania interfejsu użytkownika, która zapewni Ci najlepszy wynik wizualny.

Właściwość TextScaled określa, czy tekst jest skalowany, aby wypełnić całą przestrzeń UI. Gdy to jest włączone, TextLabel.TextSize jest ignorowany i TextLabel.TextWrapped jest automatycznie włączony. Ta właściwość jest przydatna do renderowania elementów tekstowych w ramach BillboardGuis .

Gdy ta właściwość jest używana dla interfejsu użytkownika przestrzeni ekranu, może być pożądane użycie UITextSizeConstraint, aby ograniczyć zakres możliwych rozmiarów tekstu.

TextScaled i AutomaticSize

Rekomendujemy, aby rozwijać unikanie użycia TextScaled i dostosować UI, aby wykorzystać automatyczny rozmiar właściwości zamiast tego. Oto główne różnice między dwoma właściwościami:

  • TextScaled skala treść (tekst), aby dostosować UI. Bez uważnego rozważenia niektóre teksty mogą stać się nieczytelne, jeśli skalowano je zbyt małym.
  • AutomaticSize rozmiaruje UI, aby pomieścić treść.

Z AutomaticSize możesz dostosować swoją interfejs użytkownika, aby pomieścił się na treść (tekst), jednocześnie utrzymując konsekwentny rozmiar czcionki. Więcej informacji na temat użycia automatycznego rozmiarowania znajdziesz w artykule UI Automatic Size.

Zalecamy, abyś nie stosował obu właściwości TextScaled i AutomaticSize na tym samym obiekcie użytkownika. Jeśli stosujesz obie właściwości:

  • AutomaticSize określa maksymalną ilość dostępnej przestrzeni, którą może użyć GuiObject (w tym przypadku tekst)
  • TextScaled używa dostępnej ilości miejsca określonego przez AutomaticSize, aby skalować rozmiar czcionki do dostępnej ilości miejsca, która się rozwinie do maksymalnego rozmiaru czcionki (100), jeśli nie ma ograniczeń wielkości
  • Rezultatem końcowym będzie: tekst ma rozmiar 100 pikseli, a obiekt UI rozszerzy się, aby pomieścił się w ten tekst

Używanie obu AutomaticSize i TextScaled jednocześnie może powodować znaczne różnice skalowania niż gdy AutomaticSize jest wyłączone.

Przykłady kodu

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

Odczyt równoległy

Właściwość TextSize określa wysokość w odległości jednej linii tekstu renderowanego. Jest ona w odległościach, a nie w punktach (co jest używane w większości programów do edytowania dokumentów). Warto zauważyć, że wysokość linii czcionki "Dziedzictwo" zachowuje się inaczej i nie będzie pasować do tego właściwości dokładnie.

Ta właściwość i TextLabel.TextColor3 , TextLabel.TextTransparency , TextLabel.TextStrokeColor3 i 1> Class.TextLabel.TextStrokeTransparency1> wpływają na sposób renderowania tekstu.

Właściwość ta przekracza TextLabel.FontSize, ponieważ jest to liczba a nie lista. Wewnętrznie Roblox używa kilku zestawów przedniez renderowania obrazu znaków dla każdej wielkości każdego czcionki. Wybiera najbliższą wielkość do TextSize, a następnie skala ten zestaw znaków

Przykłady kodu

"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

Odczyt równoległy

Właściwość TextStrokeColor3 ustawia kolor kształtującego się tekstu lub konturu. Ta właściwość i TextLabel.TextStrokeTransparency określa właściwości wizualne tekstu kształtującego się.

Text stroke jest renderowany przed normalnym tekstem i jest po prostu 4 renderings tego samego tekstu w +/- 1 pikseliowych odległościach w każdym kierunku. Text stroke renderuje niezależnie i identycznie do TextLabel.TextColor3 i TextLabel.TextTransparency .

Przykłady kodu

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

Odczyt równoległy

Właściwość TextStrokeTransparency ustawia przejrzystość lub kontur renderowanego tekstu. Ta właściwość i TextLabel.TextStrokeColor3 określa właściwości wizualne tekstu Renderowanego.

Text stroke jest renderowany przed normalnym tekstem i jest po prostu czterokrotnym renderowaniem tego samego tekstu w +/- 1 pixel offsets w każdym kierunku. Text

Przykłady kodu

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

Odczyt równoległy

Właściwość TextColor3 określa przejrzystość wszystkiego, co jest renderowane przez element UI. Ta właściwość wraz z TextLabel.Font , TextLabel.TextSize i TextLabel.TextColor3 będzie określać właściwości wizualne tekstu. tekst jest renderowany po konturze tekstu (

Znikający tekst w użyciu liczby for-loop jest fantastycznym sposobem na przyciągnięcie uwagi gracza na tekst pojawiający się na ekranie.


-- 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

Przykłady kodu

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

Odczyt równoległy

Kontroluje skrócenie tekstu wyświetlanego w tym TextLabel.

TextWrapped

Odczyt równoległy

Gdy włączone, właściwość ta będzie renderować tekst na wielu linijkach w przestrzeni GUI , aby TextLabel.TextBounds nigdy nie przekroczyły GuiBase2d.AbsoluteSize UI elementu.

Osiągnięto to poprzez rozbicie długich linii tekstu na wiele linii. Linie rozdzielne będą preferować białą przestrzeń; jeśli długi niezakończony słowo przekroczy szerokość elementu, ten słownik zostanie rozdzielony na wiele linii.

Jeśli dalsze przerwy linii spowodują, że poziomy wysokości tekstu (komponent Y z TextLabel.TextBounds ) przekroczą poziomy wysokości elementu (komponent Y z GuiBase2d.AbsoluteSize ) to linia ta nie zostanie w wszystkorenderowana.

Przykłady kodu

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

Odczyt równoległy

TextXAlignment określa poziom poziomego alineowania tekstu w przestrzeni elementu UI. Funkcjonuje podobnie do właściwości tekstu alineowania lewego, prawego i środkowego (nie ma opcji uzasadnienia). Dla lewego i prawego tekstu tekst jest renderowany tak, aby lewe/prawne granice tekstu po prostu dotykały krawędzi UI elementu. Dla Centrum każda linia tekstu jest pośrod

Ten parametr jest używany wraz z TextLabel.TextYAlignment, aby w pełni określić ustawienie tekstu na obu osiach. Ten parametr nie będzie wpływać na czytelne właściwości TextLabel.TextBounds i TextLabel.TextFits.

Przykłady kodu

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

Odczyt równoległy

TextYAlignment określa poziomowy rozstaw tekstu (Y-axis) tekstu renderowany w przestrzeni elementu UI. Dla góry i dołu tekst jest renderowany tak, aby górne/dolne granice tekstu dotykały krawędzi UI elementu. Dla Centrum tekst jest renderowany tak, aby istniał równy przestrzeń od górnych granic tekstu do góry elementu i dolnych granic tekstu do dołu elementu.

Ten parametr jest używany wraz z TextLabel.TextXAlignment, aby w pełni określić ustawienie tekstu na obu osiach. Ten parametr nie będzie wpływać na czytelne właściwości TextLabel.TextBounds i TextLabel.TextFits.

Przykłady kodu

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

Metody

Zdarzenia