TextLabel
*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่
TextLabel เป็นตัวแทนของสี่เหลี่ยมผืนผ้าที่มีขนาดเท่ากัน เช่นเดียวกับ Frame สีของผืนผ้าสามารถใช้เพื่อกำหนดขอบเขตข้อควา
คลาสนี้มีสมบัติข้อควบคุมการแสดงผลของข้อความ เช่น TextLabel.Font และ TextLabel.TextColor3 ทั้งหมดข้อความที่เรนเดอร์โดยแท็งค์เล็
TextService:GetTextSize() สามารถใช้เพื่อรับขนาด (ขอบเขต) ของตัวอักษรที่จะแสดงใน TextLabel ที่มีขนาดตัวอักษร ขนาดตัวอักษร และขนาดของตัวอักษร
Class.UITextSizeConstraint วัตถุสามารถใช้เพื่อจํากัดขนาดของข้อความด้วย TextLabel.TextScaled เปิดอยู่ มันเป็นการแนะนำให้ขนาดของข้อความไม่ต่ำกว่า 9 หากไม่มีให้มองเห็นส่วนใหญ่
ตัวอย่างโค้ด
-- 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)
สรุป
คุณสมบัติ
คัดลอกของ TextLabel.Text ที่ประกอบด้วยสิ่งที่กำลังเรนเดอร์โดย TextLabel
กำหนดตัวอักษรที่ใช้เพื่อเรนเดอร์ข้อความ
กำหนดตัวอักษรที่ใช้เพื่อเรนเดอร์ข้อความ
ปรับแต่งการจัดตำแหน่งของข้อความใน TextLabel
ตั้งค่าว่า TextLabel ควรเป็น GuiBase2d.Localize หรือไม่
จํานวนสูงสุดของโกรมที่ TextLabel สามารถแสดงได้
กำหนดว่า TextLabel จะนำสตริง TextLabel.Text มาใช้รูปแบบตัวอักษรที่รวดเร็วหรือไม่
กำหนดสตริงที่เรนเดอร์โดยส่วนประกอบ UI
ขนาดข้อความของส่วนหนึ่งของ UI ในออเฟ็ต
สมบัตินี้กำหนดสีของข้อความที่เรนเดอร์
เปิดใช้งานเมื่อเนื้อหาข้อความไม่ตรงกับพื้นที่ขององค์ประกอบ UI
กำหนดว่าข้อความในส่วนหนึ่งของ UI จะถูกเคลื่อนขนาดเพื่อกรอกส่วนหนึ่งของ UI
กำหนดความสูงของตัวอักษรในออเฟ็ต
กำหนดสีของเส้นข้อความ (ขอบเขต)
กำหนดความโปร่งใสของเส้นข้อความ (ขอบเขต)
กำหนดความโปร่งใสของข้อความที่เรนเดอร์
ควบคุมการตัดข้อความของตัวอักษรที่ปรากฏใน TextLabel
กำหนดว่าความหนาของข้อความเริ่มต้นอยู่ในช่องว่างของ GUI หรือไม่ และตัดข้อความเกินไป
กำหนดการจัดตำแหน่งของข้อความที่เรนเดอร์
กำหนดตำแหน่งการจัดตั้งของเนื้อหาที่เรนเดอร์
กำหนดว่ารูปแบบนี้สามารถรับข้อมูลการป้อนของผู้ใช้ได้หรือไม่
กำหนดจุดเริ่มต้นของ GuiObject สัมพันธ์กับขนาดอันตามตัวเลข
กำหนดว่าจะมีการปรับขนาดหรือไม่ขึ้นอยู่กับเนื้อหาของลูก
กำหนดสีพื้นหลัง GuiObject
กำหนดความโปร่งใสของพื้นหลังและขอบเขตของ GuiObject
กำหนดสีของขอบ GuiObject
กำหนดวิธีการที่ GuiObject ขอบเขตถูกวางโดยเฉลี่ยกับขนาดของมัน
กำหนดความกว้างของพิกเซลของ GuiObject รอบ
กำหนดว่าควรเรนเดอร์หรือไม่ GuiObjects ภายนอกขอบเขตของรูปปั้น GUI ระดับพ่อของคุณ
กำหนดว่าผู้เล่นกดเมาส์บน GuiObject หรือไม่
กำหนดว่า GuiButton สามารถใช้งานได้หรือไม่ หรือว่า GuiState ของ GuiObject กําลังเปลี่ยนแปลงหรือไม่
ควบคุมลำดับการเรียงลำดับของ GuiObject เมื่อใช้กับ UIGridStyleLayout
ตั้งค่า GuiObject ซึ่งจะได้รับการเลือกเมื่อเครื่องยนต์ผู้ควบคุมเลื่อนลง
ตั้งค่า GuiObject ซึ่งจะถูกเลือกเมื่อเครื่องยนต์เลื่อนซ้าย
ตั้งค่า GuiObject ซึ่งจะถูกเลือกเมื่อเครื่องยนต์เลื่อนไปทางขวา
ตั้งค่า GuiObject ซึ่งจะถูกเลือกเมื่อเครื่องยนต์เลื่อนขึ้น
กำหนดตำแหน่งพิกเซลและตำแหน่งเศษเส้นของ GuiObject
กำหนดจำนวนองศาที่ GuiObject หมุน
กำหนดว่า GUI สามารถเลือกได้โดย gamepad หรือไม่
เปลี่ยนแปลงการตกแต่งการเลือกที่ใช้สำหรับแพดพันเกม
ลำดับของ GuiObjects ที่เลือกโดย UI เกมแพด.
กำหนดขนาดพิกเซลและขนาดพิกเซลของ GuiObject
ตั้งค่า Size แกนที่ Class.GuiObject จะสร้างบน, สัมพันธ์กับขนาดของพ่อของมัน.
สมบัติสัมพันธ์ผสมของ BackgroundTransparency และ TextTransparency
กำหนดว่า GuiObject และบุตรหลานของมันจะถูกเรนเดอร์หรือไม่
กำหนดลำดับที่เรนเดอร์ GuiObject เมื่อเป็นคู่กับคนอื่น
อธิบายตำแหน่งหน้าจอที่เป็นไปเลยของรายการ UI ในพิกเซล
อธิบายการหมุนเวียนหน้าจริงของ UI โดยองศา
อธิบายขนาดหน้าจอที่เป็นไปจริงของรายการ UI
เมื่อตั้งค่าเป็น true จะใช้การแปลภาษาใน GuiBase2d และลูกหลานของมัน
การอ้างอิงถึง LocalizationTable ที่จะใช้ในการประยุกต์การแปลอัตโนมัติสู่ GuiBase2d และลูกหลานของมัน
ปรับแต่งพฤติกรรมการเลือกแพดพักในแนวลง
ปรับแต่งพฤติกรรมการเลือกแพดพานเกมในแนวโน้มทางซ้าย
ปรับแต่งพฤติกรรมการเลือกแพดพักเกมในทิศทางที่ถูกต้อง
ปรับแต่งพฤติกรรมการเลือกแพดพักในแนวตั้งขึ้น
ช่วยให้คุณสามารถปรับแต่งการเคลื่อนไหวของแผงควบคุมเกม
วิธีการ
วิธีการรับทอดมาจากGuiObject- TweenPosition(endPosition : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
ย้าย GUI ไปยัง Datatype.UDim2 ใหม่อย่างราบรื่น
- TweenSize(endSize : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
ปรับขนาด GUI ให้เล็กลงเป็น UDim2 ใหม่
- TweenSizeAndPosition(endSize : UDim2,endPosition : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
ย้าย GUI ไปยังขนาดและตำแหน่งใหม่อย่างราบรื่น
อีเวนต์
อีเวนต์รับทอดมาจากGuiObjectเกิดขึ้นเมื่อผู้ใช้เริ่มต้นใช้งานผ่านอุปกรณ์ระหว่างมนุษย์-คอมพิวเตอร์ (ปุ่มเมาส์ลง, แตะเริ่ม, ปุ่มคีย์บอร์ดลง, ฯลฯ)
ไฟร์เมื่อผู้ใช้เปลี่ยนวิธีการโต้ตอบผ่านอุปกรณ์ระหว่างมนุษย์-คอมพิวเตอร์ (ปุ่มเมาส์ลง, แตะเริ่ม, ปุ่มกล้อง, ฯลฯ)
ไฟร์เมื่อผู้ใช้หยุดใช้งานผ่านอุปกรณ์ระหว่างมนุษย์-คอมพิวเตอร์ (ปุ่มเมาส์ลง, แตะเริ่ม, ปุ่มคีย์บอร์ดลง, ฯลฯ)
จะเกิดขึ้นเมื่อผู้ใช้ย้ายเมาส์ไปที่องค์ประกอบ GUI
จะเกิดขึ้นเมื่อผู้ใช้ย้ายเมาส์ออกจากส่วน GUI
การเพิ่มเติมเมื่อผู้ใช้เคลื่อนเมาส์ไปยัง GUI เมื่ออยู่ภายในส่วนหนึ่งของ GUI
จะเกิดขึ้นเมื่อผู้ใช้เลื่อนเมาส์กลับเมื่อเมาส์อยู่เหนือ GUI เอเจนต์
จะเกิดขึ้นเมื่อผู้ใช้เลื่อนเมาส์ไปข้างหน้าเมื่อเมาส์อยู่เหนือรายการ GUI
จุดเกิดเหตุเมื่อ GuiObject ได้รับการโฟกัสด้วย Gamepad ตัวเลือก
ไฟร์เมื่อ Gamepad เลือกเปลี่ยนโฟกัสไปที่ GuiObject
เกิดขึ้นเมื่อผู้เล่นเริ่มต้น ดำเนินการต่อและหยุดการกด UI เป็นเวลานาน
- TouchPan(touchPositions : Array,totalTranslation : Vector2,velocity : Vector2,state : Enum.UserInputState):RBXScriptSignal
เกิดขึ้นเมื่อผู้เล่นยกนิ้วของพวกเขาบนองค์ประกอบ UI
- TouchPinch(touchPositions : Array,scale : number,velocity : number,state : Enum.UserInputState):RBXScriptSignal
เปิดเมื่อผู้เล่นทำการเลื่อนหรือดึงด้วยนิ้วสองนิ้วบน UI
- TouchRotate(touchPositions : Array,rotation : number,velocity : number,state : Enum.UserInputState):RBXScriptSignal
เกิดขึ้นเมื่อผู้เล่นทำการหมุนโดยใช้นิ้วสองนิ้วบนรูปปั้น
เกิดขึ้นเมื่อผู้เล่นทำการเลื่อนสไนเปอร์บนองค์ประกอบ UI
เกิดขึ้นเมื่อผู้เล่นทำการเลื่อนสายตาในส่วน UI
- SelectionChanged(amISelected : bool,previousSelection : GuiObject,newSelection : GuiObject):RBXScriptSignal
เกิดขึ้นเมื่อเลือกแผงควบคุมเกมเคลื่อนไปยัง, ออกหรือเปลี่ยนแปลงใน GuiBase2d หรือ GuiObjects ต้นได้
คุณสมบัติ
ContentText
สมบัตินี้ให้คำเลียนแบบของ TextLabel.Text ที่มีสิ่งที่แสดงอยู่ในขณะนี้โดย TextLabel นี่เป็นประโยชน์สำหรับการลบแท็กสไตล์ที่ใช้สำหรับข้อความรวมข้อความที่รวมข้อความ
ตัวอย่าง
เมื่อ TextLabel.RichText เปิดใช้งานสิ่งที่ TextLabel.ContentText โปรไฟล์แสดงตัวอักษรเป็นเนื้อหาที่ผู้เล่นเห็น
<tbody><tr><td>ปลอม</td><td>\<b>สวัสดี,\<br/> โลก!\</b></td><td>\<b>สวัสดี,\<br/> โลก!\</b></td></tr><tr><td>จริง</td><td>\<b>สวัสดี,\<br/> โลก!\</b></td><td>สวัสดี, โลก!</td></tr></tbody>
ข้อความรวม | ข้อความ | ContentText |
---|
Font
สมบัติข้อความ เลือกตัวอักษรหนึ่งในหลายตัวอักษรที่กำหนดไว้ล่วงหน้าที่ UI จะเรนเดอร์ข้อความของมัน บางตัวอักษรมีตัวอักษรขนาดใหญ่, ตัวอักษรลอต, และ/หรือตัวอักษรเบา (เนื่องจากไม่มีคุณสมบัต
ยกเว้นตัวอักษร "Legacy" ตัวอักษรแต่ละตัวจะเรนเดอร์ข้อความด้วยความสูงเส้นข้ามเส้นเท่ากับคุณสมบัติ TextLabel.TextSize ตัว "Code" เป็นตัวอักษรโ
คุณสมบัตินี้ได้รับการซิงค์กับคุณสมบัติ TextLabel.FontFace เมื่อตั้งค่าตัวอักษร ตัวอักษรจะตั้งค่าเป็น Font.fromEnum(value)
ตัวอย่างโค้ด
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
สมบัติข้อมูลตัวอักษรใกล้เคียงกับสมบัติข้อมูลตัวอักษรในรายการตัวอักษร แต่สามารถตั้งค่าตัวอักษรที่ไม่มีอยู่ในรายการตัวอักษร
คุณสมบัตินี้ได้รับการเก็บไว้ในความสอดคล้องกับคุณสมบัติ TextLabel.Font เมื่อตั้งค่าFontFace ฟอนต์จะตั้งค่าตามมูลค่ารายการ หรือ Enum.Font.Unknown หากไม่มีคู่
LineHeight
ควบคุมความสูงของตัวอักษรโดยเป็นจำนวนหลายของขนาดตัวอักษรใน TextLabel การปรับแต่งความสูงของตัวอักษรจะเพิ่มขึ้นตามขนาดของตัวอักษรที่อยู่ระหว่างการเรียกใช้ โดยปกติค่าเริ
MaxVisibleGraphemes
คุณสมบัตินี้ควบคุมจำนวนเงินสูงสุดของกราฟีม (หรือหน่วยข้อความ) ที่ปรากฏบน TextLabel มันจะนำเสนอให้เป็นวิธีที่ง่ายในการสร้าง "เอฟเฟกต์ของเครื่องพิมพ์" ที่ตัวละครปรากฏขึ้น
การเปลี่ยนแปลงสมบัติจะไม่เปลี่ยนตำแหน่งหรือขนาดของเหลี่ยมที่มองเห็นได้ - การจัดเรียงจะถูกคำนวณเป็นเหมือนเหลี่ยมทั้งหมดมองเห็นได้
การตั้งค่าสมบัติสู่ -1 จะปิดใช้งานขีดจำกัดและแสดงทั้งหมดของ TextLabel.Text
ตัวอย่างโค้ด
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
สมบัตินี้กำหนดว่า TextLabel จะเรนเดอร์สตริง TextLabel.Text โดยการใช้การจัดรูปแบบตัวอักษรที่ซับซ้อน การจัดรูปแบบตัวอักษรใช้แท็กเรียบเรียงง่ายๆ เพื่อสไตล์ส่วนของ
เพื่อใช้ข้อความแบบรวมอยู่ในตัวอักษร TextLabel.Text เพียงแค่รวมแท็กการจัดรูปในสตริง Class.TextLabel.Text
Text
สมบัติคำของสตริงที่เรนเดอร์ไปยังหน้าจอจะถูกกำหนดโดย
มันเป็นไปได้ที่จะเรนเดอร์อิโมจิ (เช่น 😃) และอื่น ๆ สัญลักษณ์ สัญลักษณ์เหล่านี้ไม่ได้รับผลกระทบจากสมบัติสัญลักษณ์ TextLabel.TextColor3 เหล่
สมบัตินี้อาจมีตัวอักษรใหม่ แต่ไม่สามารถพิมพ์ตัวอักษรใหม่ในหน้าต่างของ ลักษณะ ได้ เช่นเดียวกับ อาจ มี ตัวอักษร tab แต่จะเรนเดอร์เป็นพื้นที่แทน
ตัวอย่างโค้ด
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
คุณสมบัติ TextBounds เท่านั้น สะท้อนขนาดของเนื้อหาที่เรนเดอร์ในออเฟ็ต ในคำอื่น หากคุณพยายามที่จะใส่ตัวอักษรในรูปสี่เหลี่ยม คุณสมบัตินี้จะสะท้อนขนาดขั้นต่ำของรูปสี่เหลี่ยมที่คุณต้องการใช้
โดยใช้ TextService:GetTextSize() , คุณสามารถคาดการณ์ว่า TextBounds จะอยู่บน TextLabel ที่มีสตริง, TextLabel.Font และขนาดตัวอักษร และขนาดของเฟรม
ตัวอย่างโค้ด
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
สมบัตินี้กำหนดสีของข้อความทั้งหมดที่เรนเดอร์โดย GUI องค์ประกอบ สมบัตินี้พร้อมกับ TextLabel.Font และ
สำคัญที่ต้องเข้าใจว่าข้อความนี้อ่านได้ง่ายโดยผู้เล่น! ตรวจสอบให้แน่ใจว่าสีของข้อความนี้มีความเป็นกระจุกน้อยที่สุดเ
ตัวอย่างโค้ด
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 เป็นสมบัติส่วนตัวที่อ่านเท่านั้นที่เป็นประโยชน์หาก TextLabel.Text เนื้อห
ตัวอย่างโค้ด
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
แทนที่จะใช้ TextScaled เราขอแนะนำให้คุณพิจารณาใช้ AutomaticSize วิธีการใหม่ในการขยายขนาด UI ที่จะให้ผลลัพธ์ทางวิสัยทัศน์ที่ดีที่สุด
สมบัติข้อความขนาดตัวอักษรที่เรียกขนาดของข้อความให้เหมาะสมกับพื้นที่ของ UI ทั้งหมด เมื่อเปิดใช้งานสมบัติข้อความนี้จะปล่อยให้ Class.TextLabel.Text
เมื่อใช้สำหรับ UI ของพื้นที่หน้าจอ อาจเป็นไปได้ที่จะใช้ UITextSizeConstraint เพื่อจำกัดขนาดข้อความที่เป็นไปได้
TextScaled และ AutomaticSize
แนะนำให้ผู้พัฒนาหลีกเลี่ยงการใช้ TextScaled และปรับแต่ง UI เพื่อให้สามารถใช้สมบัติสมบัติขนาดอัตโนมัติได้มากขึ้น ด้านล่างคือความแตกต่างระหว่างสองสมบัติสมบัติ:
- TextScaled ปรับแต่งเนื้อหา (ข้อความ) เพื่อรองรับ UI โดยไม่ต้องสงสัย หากเครื่องมือปรับแต่งขนาดเล็กเกินไป บางข้อความอาจไม่อ่านได้หากเครื่องมือปรับแต่งขนาดเล็กเกินไป
- AutomaticSize ปรับขนาด UI เพื่อรองรับเนื้อหา
ด้วยขนาดอัตโนมัติคุณสามารถปรับแต่ง UI ของคุณเพื่อรองรับเนื้อหา (ข้อความ) ในขณะที่คุณยังคงใช้ขนาดตัวอักษรที่เหมาะสม
เราแนะนำให้คุณไม่ใช้ both TextScaled และ AutomaticSize บนวัตถุเดียวกัน หากคุณใช้ both โปรพีดีพี่ี่:
- AutomaticSize กำหนดจำนวนพื้นที่สูงสุดที่ GuiObject สามารถใช้ได้ (ในกรณีนี้คือข้อความ)
- TextScaled ใช้พื้นที่ที่กำหนดโดย AutomaticSize เพื่อปรับขนาดตัวอักษรให้เหมาะกับพื้นที่ที่มีอยู่ ซึ่งจะขยายไปยังขนาดตัวอักษรสูงสุด (100) หากไม่มีข้อจํากัด
- ผลลัพธ์สุดท้ายจะเป็น: ตัวอักษรไปที่ขนาดตัวอักษร 100 และวัตถุ UI จะขยายเพื่อให้เข้ากับตัวอักษรนั้น
การใช้ both AutomaticSize และ TextScaled ในเวลาเดียวกันอาจทำให้เกิดความแตกต่างขนาดที่มากเกินไปเมื่อเวลา AutomaticSize ปิด
ตัวอย่างโค้ด
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
คุณสมบัติ TextSize กำหนดความสูงในออเฟ็ตของข้อความแสดงผลหนึ่งบรรทัด หน่วยอยู่ในออเฟ็ต ไม่ใช่จุด (ซึ่งใช้ในโปรแกรมการแก้ไขเอกสารส่วนใหญ่) มีค่าที่แน่นอนว่า "ตัวอักษรรุ่นเก่า" จะ
สมบัตินี้และ TextLabel.TextColor3 และ TextLabel.TextTransparency และ TextLabel.TextStrokeColor3 และ 2> Class.TextLabel.TextStrokeTransparency2> แต่ละอย่างมีผลต่อวิธีการที่เนื้อหานี้จะแสดง
สมบัตินี้มีผลเมื่อ TextLabel.FontSize เป็นตัวเลขและไม่ใช่รายการ ในทางกลับกัน Roblox ใช้หลายชุดของภาพตัวละครล่วงหน้าสำหรับแต่ล
ตัวอย่างโค้ด
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
สี TextStrokeColor3 ตั้งค่าสีของเส้นหรือเงาของข้อความที่เรนเดอร์ สีนี้และ TextLabel.TextStrokeTransparency กำหนดสมบัติสมบัติของเส้นหรือเงา
การเรนเดอร์ของเนื้อหาข้อความเป็นไปก่อนการเรนเดอร์ของข้อความปกติและเป็นเพียง 4 การเรนเดอร์ของข้อความเดียวกันใน +/- 1 พิกเซลออฟเซ็ตในแต่ละทิศทาง การเรนเดอร์ข
ตัวอย่างโค้ด
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
สมบัติคุณสมบัติ TextStrokeTransparency ตั้งค่าความโปร่งใสของเส้นหรือเงาของตัวอักษรที่เรนเดอร์ได้ สมบัติคุณสมบัตินี้และ TextLabel.TextStrokeColor3 กำหนดคุณสมบัติทางสายตาของเส้นหรือเงา
การเรนเดอร์ลายเนื้อหาเป็นสีก่อนที่จะเป็นข้อความปกติแ
ตัวอย่างโค้ด
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
สีข้อความ ระบุความโปร่งใสของข้อความทั้งหมดที่เรนเดอร์โดยส่วนประกอบ UI นี้ สีนี้พร้อมกับ TextLabel.Font และ TextLabel.TextSize แล
ตัวอักษรที่เรืองแสงขึ้นเมื่อใช้ for-loop เป็นวิธีที่ยอดเยี่ยมในการดึงดูดความสนใจของผู้เล่นไปยังข้อความที่ปรากฏบนหน้าจอ
-- Count backwards from 1 to 0, decrementing by 0.1for i = 1, 0, -0.1 dotextLabel.TextTransparency = itask.wait(0.1)end
ตัวอย่างโค้ด
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
เมื่อเปิดใช้งานสมบัติสมบัตินี้จะเรนเดอร์ข้อความในหลายบรรทัดภายในพื้นที่ของ GUI เพื่อให้ TextLabel.TextBounds ไม่เกิน GuiBase2d.AbsoluteSize ของ UI เอเลมนต์
สิ่งนี้สามารถดำเนินการได้โดยการแบ่งตัวอักษรยาวเป็นหลายตัวอักษร การแบ่งตัวอักษรจะเริ่มต้นด้วยช่องว่างขาว; หากคำยาวไม่ได้ถูกแบ่งเป็นหลายสาย คำนั้นจะถูกแบ่งเป็นหลายสาย
หากเกิดการแบ่งตัวอักษรใหม่เพิ่มเติมจะทำให้ความสูงตัวอักษรตัว Y (ส่วนประกอบ Y ของ TextLabel.TextBounds ) เกินความสูงตัวอักษรของตัวองค์ประกอบ (ส่วนประกอบ Y ของ Class.GuiBase2d
ตัวอย่างโค้ด
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 กำหนดการจัดตำแหน่งของเนื้อหาในช่องว่างของ UI โดยใช้หน้าเนื้อหา (X-axis) ตัวอักษร มันทำงานได้เช่นเดียวกับสมบัติคำแนะนำของ CSS โดยมีค่าซ้าย ขวา แ
สมบัตินี้ใช้ร่วมกับ TextLabel.TextYAlignment เพื่อระบุตำแหน่งข้อความในแกนทั้งสอง สมบัตินี้จะไม่ส่งผลต่อสมบัติที่อ่านเท่านั้น TextLabel.TextBounds และ Class.TextLabel.TextF
ตัวอย่างโค้ด
-- 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 กำหนดความสมดุลแนวตั้ง (Y เห�ียน) ของเนื้อหาที่เรนเดอร์ในพื้นที่ UI เอเจนต์ สำหรับด้านบนและด้านล่าง เนื้อหาจะถูกเรนเดอร์ให้เหมือนเป็นขอบของ UI
สมบัตินี้ใช้ร่วมกับ TextLabel.TextXAlignment เพื่อระบุตำแหน่งข้อความในแกนทั้งสอง สมบัตินี้จะไม่ส่งผลต่อสมบัติที่อ่านเท่านั้น TextLabel.TextBounds และ Class.TextLabel.TextF
ตัวอย่างโค้ด
-- 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