TextLabel
*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
-- 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
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
Kopia TextLabel.Text, która zawiera dokładnie to, co jest renderowane przez TextLabel.
Określa czcionkę używającą do renderowania tekstu.
Określa czcionkę używającą do renderowania tekstu.
Skala przestrzeń między liniami tekstu w TextLabel .
Ustawia, czy TextLabel powinien być GuiBase2d.Localize lub nie.
Maksymalna liczba grafem, które TextLabel może pokazywać, prezentować.
Określa, czy TextLabel renderuje TextLabel.Text strumień używając bogatej formy tekstu.
Określa strumień renderowany przez element UI.
Rozmiar tekstu elementu interfejsu w odległościach.
Ten właściwość określa kolor tekstu renderowanego.
Włączone, gdy treść tekstowa nie pasuje do obszaru elementu UI.
Określa, czy tekst w elementze UI jest skalowany, aby wypełnić element UI.
Określ wysokość linii tekstu w odległościach.
Określa kolor tekstu (wypełnienia).
Określa przejrzystość tekstu (wstępki).
Określa przejrzystość renderowanego tekstu.
Kontroluje skrócenie tekstu wyświetlanego w tym TextLabel.
Określa, czy tekst zostanie zapisany na wielu linijkach w obszarze GUI , przycięcia nadmiaru tekstu.
Określa poziomowy alineat tekstu renderowanego.
Określa poziomowy alineat tekstu renderowanego.
Określa, czy ten element interfejsu wchłania wejście.
Określa punkt pochodzenia GuiObject względem jego wielkości absolutnej.
Określa, czy zmiana rozmiaru następuje w oparciu o treści dziecka.
Określa kolor tła GuiObject .
Określa przejrzystość tła GuiObject i ramy.
Określa kolor GuiObject granicy.
Określa sposób, w jaki GuiObject granica jest rozdzielana w stosunku do jej wymiarów.
Określa szerokość piksela GuiObject granicy.
Określa, czy potomstwo GuiObjects poza granicami elementu GUI rodzica powinno się renderować.
Określa, czy mikser gracza jest aktywnie naciskany na GuiObject lub nie.
Określa, czy GuiButton może być zainterakcjonowany z lub nie, lub czy GuiState z GuiObject zmienia się lub nie.
Kontroluje kolejność sortowania GuiObject z użyciem UIGridStyleLayout.
Ustawia GuiObject, który zostanie wybrany, gdy selektor gamepad zostanie przesunięty w dół.
Ustawia GuiObject, który zostanie wybrany, gdy selektor gamepad'a zostanie przeniesiony do lewej.
Ustawia GuiObject, który zostanie wybrany, gdy selektor gamepad'a zostanie przesunięty do prawej.
Ustawia GuiObject, który zostanie wybrany, gdy selektor gamepad'a zostanie przesunięty w górę.
Określa pozycję piksela i skalary GuiObject .
Określa liczbę stopni, w których obrócony jest GuiObject.
Określ, czy GUI może być wybrany przez gamepad.
Przywraca używany na płytach gier standardowy wzór wyboru.
Sortowanie GuiObjects wybrane przez interfejs wyboru gamepad'a.
Określa rozmiar piksela i skalary Class.GuiObject .
Ustawia Size osi, na których będzie opierać się GuiObject w odniesieniu do rozmiarów jego ojca.
Mieszana własność BackgroundTransparency i TextTransparency .
Określa, czy GuiObject i jego potomstwo zostaną renderowane.
Określa porządek, w jakim GuiObject renderuje w stosunku do innych.
Opisuje rzeczywistą pozycję ekranu elementu UI, w pikselach.
Opisuje rzeczywistą rotację ekranu elementu UI, w stopniach.
Opisuje rzeczywisty rozmiar ekranu elementu UI, w pikselach.
Ustawione na prawdę, lokalizacja zostanie zastosowana do tego GuiBase2d i jego potomnych.
Odnośnik do LocalizationTable używany do zastosowania automatycznej lokalizacji do tego GuiBase2d i jego potomnych.
Dostosowuje zachowanie wyboru gry w dół.
Dostosuj zachowanie selekcji sterowania w lewym kierunku.
Dostosuj zachowanie selekcji gry w odpowiednim kierunku.
Dostosowuje zachowanie wyboru gry w górę.
Umożliwia dostosowanie ruchu wyboru gry.
Metody
Metody odziedziczeni z: GuiObject- TweenPosition(endPosition : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
Płynnie przesuwa GUI do nowego UDim2 .
- TweenSize(endSize : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
Płynnie skala GUI do nowego UDim2 .
- TweenSizeAndPosition(endSize : UDim2,endPosition : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
Smoothly przesuwa GUI do nowego rozmiaru i pozycji.
Zdarzenia
Zdarzenia odziedziczeni z: GuiObjectWystrzelony, gdy użytkownik zacznie interagować za pośrednictwem urządzenia interfejsu człowiek-komputer (przycisk myszy, dotknięcie początku, klawiatura do klawiatury, itp).
Wystrzelony, gdy użytkownik zmienia sposób interakcji za pośrednictwem urządzenia interfejsu człowiek-komputer (przycisk myszy, dotknięcie początku, klawiatura do klawiatury, itp).
Wystąpił problem, gdy użytkownik przestał interagować za pośrednictwem urządzenia interfejsu człowiek-komputer (przycisk myszy, dotknięcie początku, klawiatura, itp).
Wystrzela, gdy użytkownik przesuwa myszkę do elementu GUI.
Wystrzela, gdy użytkownik porusza myszką poza elementem GUI.
Wystrzela, gdy użytkownik porusza myszką, gdy jest w środku elementu GUI.
Wystrzela, gdy użytkownik przesuwa myszką z powrotem, gdy myszka jest nad elementem GUI.
Wystrzela, gdy użytkownik przesuwa myszką do przodu, gdy myszka jest nad elementem GUI.
Wystrzelony, gdy GuiObject jest skupiony na z wyborem Gamepad.
Wystrzelony, gdy selektor Gamepad przestał skupiać się na GuiObject.
Wystąpi, gdy gracz rozpocznie, będzie kontynuował i zatrzyma długo naciskał element UI.
- TouchPan(touchPositions : Array,totalTranslation : Vector2,velocity : Vector2,state : Enum.UserInputState):RBXScriptSignal
Wystrzela, gdy gracz porusza palcem po obszarze UI.
- TouchPinch(touchPositions : Array,scale : number,velocity : number,state : Enum.UserInputState):RBXScriptSignal
Wystrzela, gdy gracz wykonuje ruch pociągnięcia lub pociągnięcia za pomocą dwóch palców na elementze UI.
- TouchRotate(touchPositions : Array,rotation : number,velocity : number,state : Enum.UserInputState):RBXScriptSignal
Wystąpi, gdy gracz wykonuje rotacyjny gest używając dwóch palców na elementze UI.
Wystąpi, gdy gracz wykonuje gest swipe'u na element UI.
Wystąpi, gdy gracz wykonuje gest tap na element UI.
- SelectionChanged(amISelected : bool,previousSelection : GuiObject,newSelection : GuiObject):RBXScriptSignal
Występuje, gdy selekcja gamepad'a przesuwa się do, wychodzi lub zmienia w ciągu połączonego GuiBase2d lub dowolnego potomnego GuiObjects.
Właściwości
ContentText
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 tekstem | Tekst | Tekst treści |
---|
Font
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
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
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
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
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.
MaxVisibleGraphemes
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
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
OpenTypeFeaturesError
RichText
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
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
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
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
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
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
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
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
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
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
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)
-- 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)
-- 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
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
TextFits
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
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
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
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
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
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
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
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
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
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
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.1for i = 1, 0, -0.1 dotextLabel.TextTransparency = itask.wait(0.1)end
Przykłady kodu
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
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
TextWrapped
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
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
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
-- 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
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
-- 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