TextButton
*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.
Sebuah TextButton bersikap mirip dengan TextLabel dalam hal render dengan perilaku tambahan dari GuiButton . Ini mendefinisikan prop-rendering teks sama seperti yang dilakukan TextLabel .
Anda dapat menonaktifkan render teks dengan menetapkan TextButton.TextTransparency ke 1. Ini akan meninggalkan Anda dengan rezektor yang sederhana yang dapat digunakan sebagai tombol.
Contoh Kode
-- 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)
Rangkuman
Properti
Sebuah salinan dari TextButton.Text yang berisi persis apa yang di render oleh TextButton .
Mengubah huruf yang digunakan untuk menyajikan teks.
Mengubah huruf yang digunakan untuk menyajikan teks.
Mengubah spasi antar baris teks di TextButton .
Tetapkan apakah TextButton harus menjadi GuiBase2d.Localize atau tidak.
Jumlah maksimum karakter grafem yang dapat tampilkanTextButton
Menentukan apakah TextButton menyajikan string TextButton.Text menggunakan format teks yang kaya.
Mengesokkan string yang di render oleh elemen UI.
Ukuran teks elemen UI dalamOffset.
Mengubah warna teks yang di render.
Representasi booleh apakah teks TextButton sesuai dengan ukurannya.
Mengubah apakah teks diubah untuk masuk ke dalam TextButton.
Tentukan tinggi baris teks dalamOffset.
Mendeterminas warna teksnya (outline).
Mendeterminas transparansi garis teks (outline).
Mengukur transparansi teks yang di render.
Mengontrol pemotongan teks yang ditampilkan di Tombol Teks ini.
Menentukan apakah teks bungkus menjadi beberapa baris dalam ruang elemen GUI, mengurangi teks yang berlebihan.
Mengukur alineasi vertikal teks yang di render.
Mendeterminas alineasi vertikal teks yang di render.
Menentukan apakah tombol secara otomatis berubah warna saat mouse mengambilnya atau mengkliknya.
Jika benar saat elemen GUI terlihat, mouse tidak akan terkunci kecuali tombol mouse yang benar adalah turun.
Propinsi booleh yang menunjukkan apakah objek telah dipilih.
Tetapkan gaya GuiButton berdasarkan daftar gaya pra-determinasi.
Mengukur apakah elemen UI ini menyinkronkan input.
Menentukan titik asal dari GuiObject , relatif ke ukurannya yang relatif.
Mengukur apakah resizing terjadi berdasarkan konten anak.
Menentukan warna latar belakang GuiObject .
Mengukur transparansi latar belakang dan batas Class.GuiObject .
Mengubah warna batas GuiObject .
Menentukan cara apa GuiObject batas diletakkan relatif terhadap dimensinya.
Mengukur lebar pixel dari batas GuiObject .
Menentukan apakah turunan GuiObjects di luar batas-batas elemen GUI orang tua harus rendah.
Menentukan apakah mouse pemain diaktif ditekan di GuiObject atau tidak.
Mengesok apakah GuiButton dapat diinteraksikan dengan atau tidak, atau apakah GuiState dari GuiObject berubah atau tidak.
Mengontrol urutan sortiran GuiObject saat digunakan dengan UIGridStyleLayout.
Tetapkan GuiObject yang akan dipilih saat penyeleksi gamepad di geser ke bawah.
Tetapkan GuiObject yang akan dipilih ketika pemilih gamepad di pindahkan ke kiri.
Tetapkan GuiObject yang akan dipilih ketika pemilih gamepad ditempatkan ke kanan.
Tetapkan GuiObject yang akan dipilih saat pemilih gamepad digerakkan ke atas.
Mengukur posisi pixel dan skala dari GuiObject .
Mengukur jumlah derajat di mana GuiObject berputar.
Tentukan apakah GUI dapat dipilih oleh gamepad.
Menggeser ornamen pilihan default yang digunakan untuk gamepad.
Urutan dari GuiObjects yang dipilih oleh pemilihan UI gamepad.
Mengukur ukuran pixel dan skala Class.GuiObject .
Tetapkan Size sumbu yang akan diperhitungkan berdasarkan ukuran GuiObject .
Propinsi bercampur dari BackgroundTransparency dan TextTransparency .
Menentukan apakah GuiObject dan nenek moyangnya akan di render.
Mengesepakati urutan di mana GuiObject menyajikan relatif terhadap yang lain.
Menggambarkan posisi layar sebenarnya dari elemen UI, dalam pixel.
Menggambarkan rotasi layar sebenarnya dari elemen UI, dalam derajat.
Menggambarkan ukuran layar sebenarnya dari elemen UI, dalam pixel.
Ketika diatur ke benar, lokalisasi akan diterapkan ke GuiBase2d dan pendahulunya.
Sebuah referensi ke Class.LocalizationTable untuk digunakan untuk menerapkan lokalisasi otomatis ke GuiBase2d dan pendahulunya.
Mengubah perilaku pemilihan gamepad ke arah bawah.
Mengubah perilaku pemilihan gamepad di arah kiri.
Mengubah perilaku pemilihan gamepad ke arah yang benar.
Mengubah perilaku pemilihan gamepad ke arah atas.
Memungkinkan kustomisasi gerakan pemilihan gamepad.
Metode
Metode diwarisi dari GuiObject- TweenPosition(endPosition : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
Dengan mudah pindahkan GUI ke Datatype.UDim2 baru.
- TweenSize(endSize : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
Mendeteksi ukuran GUI secara halus ke ukuran baru UDim2 .
- TweenSizeAndPosition(endSize : UDim2,endPosition : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
Dengan mudah pindahkan GUI ke ukuran dan posisi baru.
Acara
Acara diwarisi dari GuiButtonDibakar saat tombol diaktifkan.
Diaktifkan ketika mouse telah sepenuhnya meninggalkan tombol GUI.
Diaktifkan saat mouse berada dalam status tengah tulang kiri pada objek GUI.
Diaktifkan saat mouse kiri telah melepaskan objek GUI.
Diaktifkan saat mouse telah benar-benar menekan tombol GUI.
Diaktifkan saat mouse berada dalam posisi tepat mouse ke bawah pada objek GUI.
Diaktifkan saat tombol kanan tikus telah dilepaskan pada GUI Object.
Diaktifkan saat seorang pengguna mulai berinteraksi melalui perangkat Human-Computer Interface (Tombol pemutar, sentuh mulai, tombol keyboard, dll).
Diaktifkan ketika pengguna mengubah cara mereka berinteraksi melalui perangkat Human-Computer Interface (Tombol pengguna, sentuh dimulai, tombol keyboard, dll).
Diaktifkan saat seorang pengguna berhenti berinteraksi melalui perangkat Human-Computer Interface (Tombol pemutar, sentuh dimulai, tombol keyboard, dll).
Mengaktifkan saat pengguna menggerakkan mouse mereka ke elemen GUI.
Mengaktifkan saat pengguna menyesuaikan mouse mereka keluar dari elemen GUI.
Mengaktifkan setiap kali seorang pengguna menggerakkan mouse mereka saat berada di dalam elemen GUI.
Tembak ketika pengguna menggulir roda mouse mereka kembali saat mouse berada di atas elemen GUI.
Menembak ketika seorang pengguna menggulir roda mouse mereka ke depan ketika mouse berada di atas elemen GUI.
Diaktifkan saat GuiObject fokus dengan Gamepad selektor.
Diaktifkan saat Gamepad selektor berhenti fokus pada GuiObject.
Berdasarkan ketika pemain memulai, lanjutkan dan berhenti menggunakan elemen UI.
- TouchPan(touchPositions : Array,totalTranslation : Vector2,velocity : Vector2,state : Enum.UserInputState):RBXScriptSignal
Dibakar saat pemain menyeret jari mereka di elemen UI.
- TouchPinch(touchPositions : Array,scale : number,velocity : number,state : Enum.UserInputState):RBXScriptSignal
Menembak ketika pemain melakukan gerakan gesek atau tarikan menggunakan dua jari pada elemen UI.
- TouchRotate(touchPositions : Array,rotation : number,velocity : number,state : Enum.UserInputState):RBXScriptSignal
Dibakar saat pemain melakukan gerakan rotasi menggunakan dua jari di elemen UI.
Dibakar saat pemain melakukan gerakan geser di elemen UI.
Dibakar saat pemain melakukan gerakan gesek pada elemen UI.
- SelectionChanged(amISelected : bool,previousSelection : GuiObject,newSelection : GuiObject):RBXScriptSignal
Dibakar saat pemilihan gamepad bergerak ke, pergi, atau berganti di dalam GuiBase2d atau GuiObjek Descendant apa pun.
Properti
ContentText
Properti ini menyediakan salinan dari TextButton.Text yang berisi persis apa yang di render oleh TextButton . Ini berguna untuk menghapus tag gaya yang digunakan untuk teks kaya.
Contoh
Ketika TextButton.RichText diaktifkan, properti TextButton.ContentText menunjukkan teks seperti yang tampak kepada pemain.
<tbody><tr><td>benar</td><td>\<b>Halo, dunia!\</b></td><td>\<b>Halo, dunia!\</b></td></tr><tr><td>benar</td><td>\<b>Halo, dunia!\</b></td><td>Halo, dunia!</td></tr></tbody>
Teks Kaya | Teks | Teks Konten |
---|
Font
PropietasFont menentukan salah satu dari beberapa huruf prasetel dengan huruf prasetel yang akan ditampilkan oleh item UI. Beberapa huruf memiliki huruf besar, italik dan/atau varian cahaya (karena tidak ada propietas font atau gaya huruf).
Dengan pengecualian font "Legacy", setiap font akan menyajikan teks dengan tinggi baris yang sama dengan propinsi TextButton.TextSize. Font "Kode" adalah font monospace tunggal. Ini memiliki propinsi yang unik bahwa setiap karakter memiliki persentase lebar dan tinggi yang sama dari 1:2. Lebar setiap karakter adalah
Properti ini dipertahankan dalam sinkronisasi dengan properti TextButton.FontFace. Saat menetapkanFont,FontFace ditetapkan ke Font.fromEnum(value) .
Contoh Kode
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
Propiedad FontFace mirip dengan propiedad Font, tetapi memungkinkan pengaturan huruf yang tidak ada dalam daftarFont.
Properti ini di-sync dengan properti TextButton.Font. Saat menetapkan FontFace,Font ditetapkan ke nilai枚值 yang sesuai, atau ke Enum.Font.Unknown jika tidak ada pertandingan.
LineHeight
Mengontrol tinggi baris, sebagai beberapa dari ukuran huruf, dengan menyesuaikan jarak antar baris teks di TextButton .Nilai valid berkisar dari 1,0 hingga 3,0, berdasarkan default menjadi 1,0.
MaxVisibleGraphemes
Elemen ini mengontrol jumlah maksimum grafem (atau unit teks) yang ditunjukkan di TextButton . Ini paling sering disediakan sebagai cara mudah untuk membuat "efek ketik" di mana karakter muncul satu per satu.
Mengubah propinsi tidak mengubah posisi atau ukuran grafem yang terlihat - layout akan dihitung seolah-olah semua grafem terlihat.
Mengatur property ke -1 menonaktifkan batas dan menunjukkan seluruh TextButton.Text .
Contoh Kode
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
Properti ini menentukan apakah TextButton menyajikan string TextButton.Text menggunakan format teks yang kaya. Text rich menggunakan tag markup sederhana untuk menyebutkan bagian string dalam huruf besar, huruf tebal, warna spesifik, dan banyak lagi.
Untuk menggunakan teks berwarna, cukup masukkan tag pembentukan huruf di dalam TextButton.Text string.
Text
Propietas Teks menentukan konten yang di render oleh elemen UI. Propietas visual dari string yang di render ke layar di determinasi oleh Class.TextButton.TextColor3
Mungkin untuk menyajikan emoji (misalnya, 😃) dan simbol lainnya. Simbol khusus ini tidak terpengaruh oleh TextButton.TextColor3 property. Ini dapat ditempelkan ke dalam Script dan LocalScript objek, serta di bagian 2> property window2>.
Properti ini dapat berisi karakter baris baru, namun, tidak mungkin untuk mengetik karakter baris baru di jendela Propinsi. Demikian pula, property ini dapat berisi karakter tab, tetapi akan rendah sebagai ruang kosong.
Contoh Kode
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
Propiedad baca-hanya TextBounds mencerminkan ukuran teks yang dihasilkan dalamOffset. Dengan kata lain, jika Anda mencoba untuk menyesuaikan teks ke dalam Rectangle, propiedad ini akan mencerminkan dimensi minimum Rectangle yang Anda butuhkan untuk menyesuaikan teks.
Menggunakan TextService:GetTextSize() , Anda dapat memprediksi apa TextBounds akan berada di TextLabel yang diberikan string, TextButton.Font , dan ukuran frame.
Contoh Kode
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
Elemen ini menentukan warna dari semua teks yang di render oleh elemen GUI ini. Elemen ini bersama dengan TextButton.Font , TextButton.TextSize dan 2>Class.TextButton.Transparency2> akan menentukan propeti visual teks
Sangat penting agar teks mudah dibaca oleh pemain! Pastikan untuk memilih warna dengan sedikit-tidak ada saturasi, seperti putih, abu-abu, atau hitam. Pastikan warna teks Anda kontras dengan warna TextButton.BackgroundColor3 dari elemen UI. Jika elemen memiliki latar belakang transparan, coba
Contoh Kode
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
Alih-alih menggunakan TextScaled, kami merekomendasikan Anda menggunakan AutomaticSize, metode baru untuk menyesuaikan UI secara dinamis yang akan memberi Anda hasil visual terbaik.
Propiedad TextScaled menentukan apakah teks diubah sehingga mengisi seluruh ruang UI. Saat ini, TextButton.TextSize diabaikan dan TextButton.TextWrapped diaktifkan secara otomatis. Propiedad ini berguna untuk menyempurnakan UI rendah dalam BillboardGuis .
Ketika elemen ini digunakan untuk UI ruang layar, dapat diinginkan untuk menggunakan UITextSizeConstraint untuk mengebat ruang teks yang mungkin.
TextScaled dan AutomaticSize
Direkomendasikan agar pengembang menghindari penggunaan TextScaled dan menyesuaikan UI untuk mengambil keuntungan dari property AutomaticSize. Berikut adalah perbedaan utama antara kedua property ini:
- TextScaled menyesuaikan konten (teks) untuk menampung UI. Tanpa pertimbangan yang cermat, beberapa teks mungkin menjadi tidak terbaca jika diubah terlalu kecil.
- AutomaticSize mengubah ukuran UI untuk menampungkan konten.
Dengan AutomaticSize, Anda dapat menyesuaikan UI Anda untuk menampilkan konten (teks) sambil menjaga ukuran huruf yang konsisten. Untuk informasi lebih lanjut tentang cara menggunakan ukuran huruf otomatis, lihat artikel UI Otomatis.
Kami menyarankan agar Anda tidak menerapkan kedua TextScaled dan AutomaticSize pada objek UI yang sama. Jika Anda menerapkan kedua属性 ini:
- Ukuran Otomatis menentukan jumlah maksimum ruang yang tersedia yang dapat digunakan oleh GuiObject (dalam kasus ini, teks)
- TextScaled menggunakan ruang yang tersedia ditentukan oleh AutomaticSize, untuk menyesuaikan ukuran huruf agar sesuai dengan ruang yang tersedia, yang akan diperluas hingga ukuran huruf maksimum (100), jika tidak ada batas ukuran
- Hasil akhir akan menjadi: teks menyertakan 100 ukuran huruf dan objek UI akan diperluas untuk menyesuaikan teks tersebut
Menggunakan kedua Ukuran Otomatis dan TextScaled pada saat yang sama dapat menyebabkan perbedaan skalierung yang signifikan daripada ketika Ukuran Otomatis dinonaktifkan.
Contoh Kode
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
Propinsi TextSize menentukan ketinggian dalamOffset dari satu baris teks yang dibuat. Unit adalah dalamOffset, bukan poin (yang digunakan dalam kebanyakan program pengeditan dokumen). "Legacy" font tidak menyimpan propinsi ini.
Contoh Kode
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
Propiedad TextStrokeColor3 menetapkan warna stroke, atau kontur, dari teks yang di render. Propiedad ini dan TextButton.TextStrokeTransparency menentukan propinsi visual dari stroke teks.
Teks terkirim sebelum teks normal dan hanya 4 render dari teks yang sama dalam +/- 1 pixelOffsets dalam setiap arah. Teks terkirim bekerja secara independen dan sama seperti TextButton.TextColor3 dan TextButton.TextTransparency .
Contoh Kode
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
Propinsi TextStrokeTransparency menetapkan transparansi stroke, atau kontur, dari teks yang di render. Propinsi ini dan TextButton.TextStrokeColor3 menentukan propinsi propinsi visual teks.
Teks tercetak di render sebelum teks normal dan hanya 4 render dari teks yang sama dalam +/- 1 pixel offsets dalam setiap arah. Teks tercet
Contoh Kode
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
Propiedad TextColor3 menentukan transparansi semua teks yang di render oleh elemen UI. Propiedad ini bersama dengan TextButton.Font , TextButton.TextSize dan TextButton.TextColor3 akan menentukan proporsi visual teks. Teks di render setelah garis besar ( 1> Class.TextButton
Menghilangkan teks dalam menggunakan for-loop numerik adalah cara yang fantastis untuk menarik perhatian pemain ke teks yang muncul di layar.
-- Count backwards from 1 to 0, decrementing by 0.1for i = 1, 0, -0.1 dotextLabel.TextTransparency = itask.wait(0.1)end
Contoh Kode
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
Ketika diaktifkan, properti ini akan menampilkan teks di beberapa baris dalam ruang <a href="/reference/engine/databases">Class.TextButton|Gui</a> sehingga <a href="/reference/engine/databases">Class.TextButton.TextSeconds</a> tidak akan pernah melebihi <a href="/reference/engine/databases">Class.GuiBase2d.AbsoluteSize</a> dari elemen UI.
Ini dicapai dengan memecahkan baris panjang teks menjadi beberapa baris. Pemecahan garis putus akan mem preferensikan ruang putih; jika kata panjang yang tidak dipecahkan melebihi lebar elemen, kata itu akan dibagi menjadi beberapa baris.
Jika penghancuran baris lainnya menyebabkan ketinggian vertikal teks (komponen Y dari TextButton.TextBounds ) untuk melebihi ketinggian vertikal elemen (komponen Y dari GuiBase2d.AbsoluteSize), maka baris itu tidak akan rendah sama semua.
Contoh Kode
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 menentukan alineasi vertikal (X-axis) teks yang di render dalam ruang UI. Fungsionerannya sama dengan property teks alineasi kiri, kanan dan pusat (tidak ada opsi justifikasi). Untuk Left dan Right, teks di render sehingga batas teks kiri/kanan hanya menyentuh sudut UI. Untuk Center, setiap baris teks diatur di pusat UI element.
Elemen ini digunakan bersama dengan TextButton.TextYAlignment untuk sepenuhnya menentukan alineasi teks di kedua sumbu. Elemen ini tidak akan mengubah elemen baca hanya TextButton.TextBounds dan TextButton.TextFits .
Contoh Kode
-- 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 menentukan alineasi vertikal (Y-axis) teks yang rendah dalam ruang UI. Untuk Top dan Bottom, teks di render sehingga batas-batas teks atas/bawah hanya menyentuh sudut UI. Untuk Center, teks di render sehingga ada ruang yang sama dari batas atas/bawah teks ke atas ruang elemen dan batas bawah teks ke bawah ruang elemen.
Elemen ini digunakan bersama dengan TextButton.TextXAlignment untuk sepenuhnya menentukan alineasi teks di kedua sumbu. Elemen ini tidak akan mengubah elemen baca hanya TextButton.TextBounds dan TextButton.TextFits .
Contoh Kode
-- 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