TextLabel 은 스타일 텍스트와 함께 사용하는 직사각형을 렌더링하는 경우가 있습니다. 직사각형은 텍스트 경계를 정의하고, 텍스트 크기 조정( Frame ), 감싸기( Class.
이 클래스에는 텍스트 표시를 제어하는 속성, 예를 들어 TextLabel.Font 및 TextLabel.TextColor3 가 포함되어 있습니다. 단일 텍스트 레이블에서 렌더링된 모든 텍스트는 동일한 시각적 속성
TextService:GetTextSize() 는 글꼴 크기, 글꼴 크기 및 프레임 크기를 지정한 텍스트 레이블에 렌더링될 텍스트의 크기(바운드)를 확인하는 데 사용할 수 있습니다.
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)
요약
속성
Class.TextLabel 의 복사본은 다음을 포함합니다. TextLabel 가 렌더링하는 것입니다.
텍스트를 렌더링하는 글꼴을 결정합니다.
텍스트를 렌더링하는 글꼴을 결정합니다.
Class.TextLabel 의 텍스트 줄 사이의 간격을 조정합니다.
Class.TextLabel 이 GuiBase2d.Localize 여야 하는지 설정합니다.
Class.TextLabel 은 보다수 있는 최대 그래픸 수입니다.
풍부한 텍스트 서식을 사용하여 텍스트 레이블을 렌더링하는지 여부를 결정합니다.
UI 요소에서 표시되는 문자열을 결정합니다.
오프셋의 UI 요소 텍스트 크기.
이 속성은 렌더링된 텍스트의 색을 결정합니다.
UI 요소의 공간에 텍스트 콘텐츠가 맞지 않는 경우 활성화됩니다.
UI 요소의 텍스트를 UI 요소에 맞게 조정하는지 여부를 결정합니다.
오프셋의 텍스트 높이를 결정합니다.
텍스트 범례의 색을 결정합니다.
텍스트 범례의 투명도를 결정합니다(윤곽선).
렌더링된 텍스트의 투명도를 결정합니다.
이 텍스트 레이블에 표시되는 텍스트의 잘림을 제어합니다.
텍스트 래핑을 GUI 요소 공간에 여러 줄로 결정하고 과도한 텍스트를 잘라냅니다.
렌더링된 텍스트의 가로 정렬을 결정합니다.
렌더링된 텍스트의 가로 정렬을 결정합니다.
이 UI 요소가 입력을 싱크하는지 여부를 결정합니다.
절대 크기에 대해 GuiObject 의 원래 크기를 결정합니다.
자식 콘텐츠에 따라 크기 조정이 발생하는지 여부를 결정합니다.
Class.GuiObject 배경 색상을 결정합니다.
Class.GuiObject 배경과 경계의 투명도를 결정합니다.
Class.GuiObject 경계의 색을 결정합니다.
크기 축소에 따라 GuiObject 범위의 경계가 어떻게 설정되는지 결정합니다.
Class.GuiObject 범위의 픽셀 너비를 결정합니다.
부모 GUI 요소의 범위 내에서 내려지는 경우 GuiObjects 을 렌더링할지 여부를 결정합니다.
플레이어의 마우스가 GuiObject에 활성적으로 누르고 있는지 여부를 결정합니다.
Class.GuiButton 이 인터랙션 가능한지 여부를 결정하고, GuiState 의 GuiObject 가 변경되었는지 여부를 결정합니다.
Class.UIGridStyleLayout 와 함께 사용할 때 UIGridStyleLayout 의 정렬 순서를 제어합니다.
게임 패드 선택기가 내려지면 선택할 GuiObject 를 설정합니다.
왼쪽 게임 패드 선택기에 배치될 때 GuiObject 를 설정합니다.
오른쪽 게임 패드 선택기에 배치될 GuiObject 를 설정합니다.
게임 패드 선택기가 위로 이동할 때 선택할 GuiObject 설정합니다.
Class.GuiObject의 픽셀 및 스칼라 위치를 결정합니다.
Class.GuiObject가 회전하는 데 사용되는 도 수를 결정합니다.
게임 패드에서 GUI 를 선택할 수 있는지 여부를 결정하십시오.
게임 패드에 사용되는 기본 선택 장식을 재정의합니다.
게임 패드 선택에 의해 선택된 <Class.GuiObject|GuiObjects>의 순서입니다.
Class.GuiObject의 픽셀 및 스칼라 크기를 결정합니다.
Class.GuiObject.Size|Size 축을 설정하면 GuiObject의 부모 크기에 대해 기반을 둔다.
Class.GuiObject.BackgroundTransparency|BackgroundTransparency 및 TextTransparency의 혼합 속성.
Class.GuiObject 및 그 후손이 렌더링될지 여부를 결정합니다.
다른 요소와 비슷한 순서로 GuiObject 렌더링을 결정합니다.
UI 요소의 실제 화면 위치를 픽셀로 설명합니다.
UI 요소의 실제 화면 회전을 정도로 설명합니다.
UI 요소의 실제 화면 크기를 픽셀로 설명합니다.
설정을 사용하면 이 GuiBase2d와 그 후손에 대해 현지화가 적용됩니다.
이 GuiBase2d와 그 후손에 자동화 로컬화를 적용하기 위한 LocalizationTable 참조.
아래로 향하는 게임 패드 선택 동작을 사용자 정의합니다.
왼쪽 방향에서 게임 패드 선택 동작을 사용자 정의합니다.
오른쪽 방향으로 게임 패드 선택 동작을 사용자 정의합니다.
게임 패드 선택 동작을 위쪽으로 사용자 정의합니다.
게임 패드 선택 이동을 사용자 정의할 수 있습니다.
메서드
메서드가 GuiObject에서 상속되었습니다- TweenPosition(endPosition : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
새로운 Datatype.UDim2로 GUI를 부드럽게 이동합니다.
- TweenSize(endSize : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
새로운 Datatype.UDim2로 GUI를 원활하게 조정합니다.
- 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 요소 위에 있을 때 사용자가 마우스 휠을 앞으로 스크롤할 때 발생합니다.
Gamepad 선택기로 집중되는 동안 GuiObject가 발생했습니다.
게임 패드 선택기가 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 요소에서 스와이프 동작을 수행할 때 화면에 나타납니다.
플레이어가 UI 요소에 탭 동작을 수행할 때 발생합니다.
- SelectionChanged(amISelected : bool,previousSelection : GuiObject,newSelection : GuiObject):RBXScriptSignal
게임 패드 선택이 이동하거나 떠나거나 연결된 GuiBase2d 또는 모든 하위 GuiObjects 내에서 변경되면 화면에 표시됩니다.
속성
ContentText
이 속성은 TextLabel.Text 에 대한 복사본을 제공하며, 이는 TextLabel 에 의해 렌더링되는 정확한 내용을 포함합니다. 이는 풍부한 텍스트에 대한 스타일 태그를 제거하는 데 유용합니다.
예시
Class.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>
부분 자유 텍스트 | 텍스트 | 콘텐츠 텍스트 |
---|
Font
글꼴 속성은 사용자 요소에 텍스트를 렌더링할 글꼴 중 하나를 선택합니다. 일부 글꼴에는 베이직, 이탈리아어 및/또는 라이트 변형이 있습니다(글꼴 무게 또는 글꼴 스타일 속성이 없음).
“전통” 서체를 제외하고 모든 서체는 TextLabel.TextSize 속성과 같은 줄 높이로 텍스트를 렌더링합니다. TextLabel.TextSize 서체는 단일 모노 스페이스 서체입니다. 각 캐릭터의 정확한 너비 및 높이 비율을
이 속성은 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
FontFace 속성은 글꼴 열거형에 없는 글꼴을 설정하는 데 유용하지만, 글꼴이 없는 글꼴을 설정하는 데는 글꼴 속성과 비슷합니다.
이 속성은 TextLabel.Font 속성과 동기화됩니다. 폰트를 설정할 때 폰트는 해당 열거형 값에 설정되거나 Enum.Font.Unknown 이 있으면 됩니다.
LineHeight
글꼴의 정사각형 크기와 텍스트 줄 사이의 간격을 늘리거나 줄 간의 간격을 늘리면 라인의 높이를 조정합니다. 유효한 값은 1.0에서 3.0 사이입니다. 기본값은 1.0입니다.
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 문자열에 서식 태그를 포함하십시오.
Text
텍스트 속성은 UI 요소에서 표시되는 콘텐츠를 결정합니다. 시각적 속성은 Class.TextLabel
이 특수 기호(예: 😃) 및 기타 기호를 렌더링할 수 있습니다. 이 특수 기호는 TextLabel.TextColor3 속성에 영향을 받지 않습니다. 이 기호는 Script 및 LocalScript 개체, 속성 창 내의 필드 모두에 붙여
이 속성에는 새로운 줄 문자가 포함될 수 있지만, 속성 창에서 새로운 줄 문자를 입력할 수는 없습니다. 마찬가지로 이 속성에는 탭 문자가 포함될 수 있지만 대신 공백으로 표시됩니다.
코드 샘플
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는 오프셋에 따라 렌더링된 텍스트의 실제 크기를 반영합니다. 즉, 텍스트를 직사각형에 맞추려고 시도하면 이 속성이 렌더링된 텍스트의 최소 크기를 반영합니다.
Class.TextService:GetTextSize()를 사용하면 문자열에 주어진 텍스트 바운드에 텍스트 크기를 예측할 수 있습니다, 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 , TextLabel.TextSize 및 1> Class.TextLabel.Transparency1> 은
플레이어가 쉽게 읽을 수 있도록 텍스트를 선택하십시오! 흰색, 회색 또는 검은과 같은 적은 채우기가 없는 색을 선택하십시오. 텍스트의 색과 GUI 요소의 색이 일치하는지 확인하려면 Class.TextLabel.
코드 샘플
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 콘텐츠에 맞지 않으면 읽기 전용 속성이 아니라는 것을 나타냅니다. 만약 Class
코드 샘플
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 요소의 공간을 채우는지 여부를 결정합니다. 이 속성이 활성화되면 TextLabel.TextSize 가 무시되고 TextLabel.TextWrapped 가 자동으로 활성화됩니다. 이 속성은 BillboardGuis 내의
이 속성이 화면 공간 사용자 인터페이스에 사용되면 UITextSizeConstraint 를 사용하여 가능한 텍스트 크기의 범위를 제한하는 것이 좋습니다.
텍스트 크기 조정 및 자동 크기 조정
텍스트 크기 조정 기능을 사용하지 마십시오 대신 개발자는 자동 크기 조정 속성을 활용할 수 있습니다. 다음은 두 속성 간의 주요 차이입니다.
- TextScaled 콘텐츠(텍스트)를 확장하여 UI에 적응합니다. 신중하게 고려하지 않으면 콘텐츠가 너무 작게 확장되면 읽기 어려울 수 있습니다.
- AutomaticSize는 콘텐츠를 수용하기 위해 UI를 자동으로 조정합니다.
AutomaticSize를 사용하면 글꼴 크기를 유지하면서 콘텐츠(텍스트)를 수용할 수 있는 UI를 조정할 수 있습니다. 자세한 내용은 글꼴 자동 크기 조정 기능 사용 을 참조하십시오.
텍스트 크기 조정 및 자동 크기 조정을 모두 동일한 UI 개체에 적용하지 마십시오. 두 속성을 모두 적용하면:
- 자동 크기는 GuiObject 가 사용할 수 있는 최대 공간 크기를 결정합니다(이 경우 텍스트)
- TextScaled은 자동 크기 조정으로 결정된 사용 가능한 공간을 사용하여 글꼴 크기를 자동 크기에 맞게 조정하므로 글꼴 크기 제한이 없는 경우 최대 글꼴 크기(100)에 맞게 글꼴 크기를 조정합니다.
- 결과는 다음과 같습니다. 텍스트는 100 글꼴 크기로 확대되고 인터페이스 개체는 텍스트에 맞게 확장됩니다.The end result will be: text goes to 100 font size and the UI object will expand to fit that text
AutomaticSize와 TextScaled을 동시에 사용하면 자동 크기 조정이 끄기발생하는 차이보다 훨씬 큰 크기 조정 차이가 발생할 수 있습니다.
코드 샘플
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
텍스트 크기 속성은 렌더링된 텍스트의 한 줄의 높이를 결정합니다. 단위는 오프셋이며 포인트가 아닙니다(대부분의 문서 편집 프로그램에서는 이 속성이 정확히 일치하지 않음). "유산" 서체의 줄 높이가 다르게 동작하고 이 속성과 정확히 일치하지 않음을 주의하십시오.
이 속성과 TextLabel.TextColor3 , TextLabel.TextTransparency , TextLabel.TextStrokeColor3 및 1> Class.TextLabel.TextStrokeTransparency1> 각 텍스트 렌더링 방식에 영향을 미칩니다.
이 속성은 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 는 텍스트 윤곽의 시각적 속성을 결정합니다.
텍스트 벡터는 일반 텍스트보다 먼저 렌더링되며, 각 방향의 +/- 1개의 픽셀 오프셋에 대해 4개의 렌더링된 텍스트를 나타냅니다. 텍스트 벡터 렌더링은 독립적으로 및 동일하게 TextLabel.TextColor3 및 Class.TextLabel.TextTransparency
코드 샘플
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 는 텍스트 윤곽의 시각적 속성을 결정합니다.
텍스트 스트로크는 일반 텍스트 렌더링보다 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
TextTransparency
텍스트 색상 3 속성은 UI 요소에서 렌더링된 모든 텍스트의 투명도를 결정합니다. 이 속성과 함께 TextLabel.Font , TextLabel.TextSize 및 TextLabel.TextColor3 이 시각적 속성을
숫자 for-루프를 사용하여 텍스트를 슬라이스하면 화면에 표시되는 텍스트에 플레이어의 관심을 끌 수 있습니다.
-- 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 이 요소의 UI 요소에 대한 길이를 초과하지 않도록 합니다.
이 작업은 길은 텍스트 줄을 여러 줄로 나누어 달성합니다. 줄 분리는 백스페이스를 선호하지만 길지 않은 단어가 요소 너비를 초과하면 줄이 여러 줄로 나뉩니다.
Class.TextLabel.TextSeconds 내 GuiBase2d.AbsoluteSize 구성 요소에 추가 줄 간격이 발생하면 해당 줄이 완전히 표시되지 않습니다.
코드 샘플
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
텍스트 정렬은 텍스트 렌더링 요소의 공간에 대한 가로 정렬(X축)을 결정합니다. 이 속성은 왼쪽, 오른쪽 및 센터 값(정렬 옵션 없음)에 대해 동일하게 작동합니다. 왼쪽 및 오른쪽의 경우 텍스트가 UI 요소 직사각형의
이 속성은 TextLabel.TextYAlignment와 함께 사용되어 두 축 모두에 대한 텍스트 정렬을 완전히 결정합니다. 이 속성은 읽기 전용 속성 TextLabel.TextBounds 및 TextLabel.TextFits에는 영향을 주지 않습니다.
코드 샘플
-- 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
텍스트 맞춤 정렬은 텍스트 렌더링의 가로 정렬(Y축)을 결정합니다. 위와 아래의 경우 텍스트 경계가 단지 텍스트 요소 영역의 가장자리에 도달하도록 합니다. 센터의 경우 위/아래 텍스트 경계가 모두 텍스트 요소 영
이 속성은 TextLabel.TextXAlignment와 함께 사용되어 두 축 모두에 대한 텍스트 정렬을 완전히 결정합니다. 이 속성은 읽기 전용 속성 TextLabel.TextBounds 및 TextLabel.TextFits에는 영향을 주지 않습니다.
코드 샘플
-- 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