TextButton
*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.
A TextButton zachowuje się podobnie do TextLabel w odniesieniu do renderowania z dodatkowymi zachowaniami GuiButton . Definiuje te same właściwości renderowania jak TextLabel .
Możesz wyłączyć renderowanie tekstu ustawiając TextButton.TextTransparency na 1. Będzie to pozostawić ci prostej prostokąta, którą można użyć jako przycisku.
Przykłady kodu
-- Place this code in a LocalScript in a TextButton
local textButton = script.Parent
local counter = 0
textButton.Text = "Click me!"
local function onActivated()
counter = counter + 1
textButton.Text = "Clicks: " .. counter
end
textButton.Activated:Connect(onActivated)
Podsumowanie
Właściwości
Kopia TextButton.Text, która zawiera dokładnie to, co jest renderowane przez TextButton .
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 TextButton .
Ustawia, czy TextButton powinien być GuiBase2d.Localize lub nie.
Maksymalna liczba grafem, które TextButton może pokazywać, prezentować.
Określa, czy TextButton renderuje TextButton.Text strumień używając bogatej formy tekstu.
Określa strumień renderowany przez element UI.
Rozmiar tekstu elementu interfejsu w odległościach.
Określa kolor tekstu renderowanego.
Booleanowa reprezentacja tego, czy tekst TextButton'a pasuje w rozmiarze.
Zmienia rozmiar tekstu, aby zmieścił się w TextButton.
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 TextButton.
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 przycisk automatycznie zmienia kolor, gdy myszka jest na nim lub klikać na niego.
Jeśli jest prawy, a element GUI jest widoczny, myszka nie zostanie zablokowana, chyba że prawe przyciski myszy są naciśnięte.
Booleanowa wartość, która wskazuje, czy obiekt został wybrany.
Zdefiniowuje styl GuiButton na podstawie listy uprzednio zdefiniowanych stylów.
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: GuiButtonWystrzeliwany jest po aktywowaniu przycisku.
Wystrzelony, gdy myszka całkowicie opuściła kliknięty przycisk GUI.
Wystrzelony, gdy myszka jest w stanie lewego kliczenia w dół na obiekcie GUI.
Wystrzelony, gdy lewy mouse uwolnił obiekt GUI.
Wystrzelony, gdy myszka w pełni kliknięta przycisk GUI.
Wystrzelony, gdy myszka jest w stanie prawy w dół na obiekcie GUI.
Wystrzelony, gdy przycisk myszy prawy zostanie uwolniony na obiekcie GUI.
Wystrzelony, 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ę TextButton.Text, która zawiera dokładnie to, co jest renderowane przez TextButton. Jest to przydatne do eliminacji tagów stylu używanych do bogatego tekstu.
Przykład
Gdy TextButton.RichText jest włączony, właściwość TextButton.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ą TextButton.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ą TextButton.FontFace. Gdy ustawiaszFont, właściwośćFontFace jest 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ą TextButton.Font. Gdy ustawiaszFontFace,Font jest ustawiony na odpowiednią wartość listy lub na 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 TextButton. 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 TextButton . 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łkowitość TextButton.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 TextButton renderuje TextButton.Text strungę używającą bogatej formy tekstu. Bogate tekstu używa proste tagi znaczników, aby stylować sekcje strungi w odwaga, podkreślenie i kolory.
Aby użyć bogatego tekstu, po prostu włącz tagi formatowania w TextButton.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 znaków. Te specjalne znaki nie są objęte właściwością TextButton.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 ciąg, TextButton.Font , TextButton.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 TextButton.Font , TextButton.TextSize i 2>Class.TextButton.Transparency2> będzie określać właściwości wizualne tek
Ważne jest, aby tekst łatwo czytany przez graczy! Upewnij się, że wybrałeś kolory z niską nasyceniem, takie jak biały, szary lub czarny. Upewnij się, że kolor tekstu jest kontrastowany przez TextButton.BackgroundColor3 UI elementu. 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
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, TextButton.TextSize jest ignorowany i TextButton.TextWrapped jest automatycznie włączony. Ta właściwość jest przydatna do renderowania elementów tekstu 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 to odległość w liczbie całych, nie kropki (które są używane w większości programów do edytowania dokumentów). Czcionka "Dziedzictwo" nie ma tej właściwości.
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 TextButton.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 TextButton.TextColor3 i TextButton.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 TextButton.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 TextButton.Font , TextButton.TextSize i TextButton.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, to właściwość będzie renderować tekst na wielu linijkach w przestrzeni GUI tak, aby TextButton.TextBounds nigdy nie przekroczyły GuiBase2d.AbsoluteSize elementu UI.
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 TextButton.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 TextButton.TextYAlignment, aby w pełni określić ustawienia tekstu na obu osiach. Ten parametr nie będzie wpływać na czytelne właściwości TextButton.TextBounds i TextButton.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 TextButton.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 TextButton.TextBounds i TextButton.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