TextBox

사용되지 않는 항목 표시

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

텍스트 상자는 플레이어가 텍스트 입력을 제공하는 경우 Class.TextButton 과 동일합니다. 단일 텍스트 상자를 클릭하거나 탭하거나 게임 패드 선택을 클릭하여 집중할 수 있습니다. 집중 상태에서 플레이어는 키보드를 사용하여 Class.TextButton.

  • 텍스트가 없으면 PlaceholderText 가 표시됩니다. 이것은 플레이어가 입력해야 하는 데이터의 유형 또는 형식에 대한 유용한 메시지입니다.
  • 기본적으로 ClearTextOnFocus 속성이 활성화되어 있으며 텍스트 상자가 포커스 되었을 때 텍스트가 없음을 확인합니다. 이 속성은 플레이어가 편집할 수 있는 텍스트가 없음을 확인하기 위한 것이 아니므로 원하지 않을 수 있습니다.
  • Class.Toolbar.MultiLine|MultiLine 속성을 사용하면 플레이어가 새 줄 문자(\n)를 사용하여 여러 줄의 텍스트를 입력할 수 있습니다.

Class.ContextActionService 는 텍스트 상자 키 바인딩을 존중하고 키 누르기 이벤트가 ContextActionService:BindAction() 에 바인딩된 동작으로 자동으로 전달되지 않도록 방지합니다. UserInputService.InputBegan 및 관련 이벤트는 텍스트 상자가 포커스 상태일 때 키

집중 상태

텍스트 상자의 초점 상태를 감지하고 변경할 수 있습니다.

  • 대화 상자가 나타나면 CaptureFocus 을 사용하여 플레이어가 텍스트 상자를 클릭하지 않고 사용 가능하게 할 수 있습니다. ContextActionService:BindAction() 를 사용하여 이 함수를 사용하여 특정 키를
  • Class.Toolbar:IsFocused()|IsFocused 를 사용하여 특정 텍스트 상자가 포커스 상태인지 여부를 감지할 수 있습니다. 또는 UserInputService:GetFocusedTextBox() 를 사용하여 특정 텍스트 상자가 포커스 상태인지 여부를 확인할 수 있습니다.
  • 플레이어가 텍스트를 입력하면 FocusLost 이벤트가 발생하여 사용자가 Enter를 눌러 텍스트와 함께 컨센트를 떠나게 했을 때 잃어버린 컨센트를
  • 게임 플레이 중에 더 중요한 문제가 발생하면 텍스트 상자에서 ReleaseFocus 으로 플레이어의 키보드 입력을 게임으로 다시 전송하여 플레이어의 키보드 입력을 게임으로 다시 전송할 수 있습니다.

텍스트 편집

텍스트 상자는 자신의 CursorPositionSelectionStart 속성을 통해 텍스트 선택을 지원합니다. 텍스트 상자를 사용하여 클립보드 지원을 활성화하려면 GetPropertyChangedSignal

텍스트 필터링 알림 플레이어 간 텍스트 통신을 사용하는 게임, 예를 들어 사용자 지정 채팅 또는 이름 표시, 은 올바르게 TextService:FilterStringAsync() 또는 Chat:FilterStringAsync() 을 사용하여 이러한 텍스트를 필터링해야 합니다.

코드 샘플

TextBox Secret Word

-- 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)

요약

속성

  • 병렬 읽기

    텍스트 상자를 클릭하면 속성 TextBox.Text 을 지우는지 여부를 결정합니다.

  • 읽기 전용
    복제되지 않음
    병렬 읽기
  • 병렬 읽기

    텍스트 커서의 오프셋을 바이트 단위로 결정하거나 -1 없는 경우 커서를 사용하지 않습니다.

  • 숨김
    복제되지 않음
    병렬 읽기

    텍스트를 렌더링하는 글꼴을 결정합니다.

  • 병렬 읽기

    텍스트를 렌더링하는 글꼴을 결정합니다.

  • 병렬 읽기

    Class.Toolbar 의 텍스트 줄 간의 공간을 조정합니다.

  • Class.Toolbar가 표시할 수 있는 최대 그래픸 보다.

  • 병렬 읽기

    설정을 참으로 설정하면 TextBox 내의 텍스트가 여러 줄로 이동할 수 있습니다. 이렇게 하면 플레이어가 입력 키를 사용하여 새 줄로 이동할 수 있습니다.

  • 읽기 전용
    복제되지 않음
    병렬 읽기
  • 텍스트 상자에 텍스트가 입력되지 않은 경우 사용할 텍스트 색상을 설정합니다.

  • 병렬 읽기

    텍스트 상자에 아직 텍스트가 입력되지 않은 경우 표시되는 텍스트를 설정합니다.Sets the text that gets displayed when no text has been entered into the TextBox yet.

  • 병렬 읽기

    풍부한 텍스트 서식을 사용하여 TextBox가 문자열을 렌더링하는지 여부를 결정합니다.

  • 병렬 읽기

    텍스트 선택의 시작 위치를 결정하거나 -1 텍스트가 선택되지 않은 경우.

  • 병렬 읽기

    설정을 트루로 설정하면 플랫폼에 대한 입력이 Roblox의 내장 키보드가 아닌 네이티브 키보드를 사용하게 됩니다.

  • 병렬 읽기

    UI 요소에서 표시되는 문자열을 결정합니다.

  • 읽기 전용
    복제되지 않음
    병렬 읽기

    오프셋의 UI 요소 텍스트 크기.

  • 병렬 읽기

    렌더링된 텍스트의 색을 결정합니다.

  • 병렬 읽기

    사용자가 Text 를 변경할 수 있는지 여부를 결정합니다.

  • 읽기 전용
    복제되지 않음
    병렬 읽기

    텍스트가 텍스트 상자의 제약 사항에 부합하는지 여부입니다.

  • 병렬 읽기

    텍스트를 렌더링하는 GUI 개체에 맞게 크기를 조정합니다.

  • 병렬 읽기

    오프셋의 텍스트 높이를 결정합니다.

  • 텍스트 범례의 색을 결정합니다.

  • 텍스트 범례의 투명도를 결정합니다(윤곽선).

  • 렌더링된 텍스트의 투명도를 결정합니다.

  • 이 텍스트 상자에 표시되는 텍스트의 잘림을 제어합니다.

  • 병렬 읽기

    텍스트 래핑을 GUI 요소 공간에 여러 줄로 결정하고 과도한 텍스트를 잘라냅니다.

  • 렌더링된 텍스트의 가로 정렬을 결정합니다.

  • 렌더링된 텍스트의 가로 정렬을 결정합니다.

속성GuiObject에서 상속되었습니다속성GuiBase2d에서 상속되었습니다

메서드

  • 클라이언트가 TextBox에 집중하도록 합니다.

  • 텍스트 상자가 집중되면 참이고, 그렇지 않으면 거짓입니다.

  • ReleaseFocus(submitted : bool):void

    클라이언트가 TextBox를 포커스 해제하도록 강제합니다.

메서드GuiObject에서 상속되었습니다

이벤트

이벤트GuiObject에서 상속되었습니다이벤트GuiBase2d에서 상속되었습니다

속성

ClearTextOnFocus

병렬 읽기

텍스트 상자를 클릭하면 속성 TextBox.Text 을 지우는지 여부를 결정합니다.

ContentText

읽기 전용
복제되지 않음
병렬 읽기

CursorPosition

병렬 읽기

cursorPosition 텍스트 커서의 바이트 오프셋을 결정합니다. 텍스트 상자가 현재 편집되지 않은 경우 -1을 나타냅니다. 1을 나타내는 속성 Text 과 함께 사용하면 텍스트 상자

이 속성의 단위는 바이트 이며, 많은 유니코드 문자는 1바이트 이상입니다. 예를 인스턴스, 플레이어가 텍스트 상자에 입력하면 "Hello👋" – "Hello" – 움직이는 손 기호 후에 즉시 커서 위치가 10이 아닌 7이므로 커서

코드 샘플

TextBox Selections

local textBox = script.Parent
local function showSelection()
if textBox.CursorPosition == -1 or textBox.SelectionStart == -1 then
print("No selection")
else
local selectedText = string.sub(
textBox.Text,
math.min(textBox.CursorPosition, textBox.SelectionStart),
math.max(textBox.CursorPosition, textBox.SelectionStart)
)
print('The selection is:"', selectedText, '"')
end
end
textBox:GetPropertyChangedSignal("CursorPosition"):Connect(showSelection)
textBox:GetPropertyChangedSignal("SelectionStart"):Connect(showSelection)
숨김
복제되지 않음
병렬 읽기

글꼴 속성은 글꼴 요소에 텍스트를 렌더링할 다음 중 하나를 선택합니다. 일부 글꼴에는 베이직, 이탈리아어 및/또는 라이트 변형이 있습니다(글꼴 무게 및 글꼴 스타일 속성이 없음).

텍스트 높이가 줄 높이와 같은 방식으로 표시되지만 모든 폰트는 TextBox.TextSize 속성과 같은 텍스트를 렌더링합니다. TextBox.TextSize 폰트는 모노스페이스 폰트입니다. 각 캐릭터마다 1:2의 넓이

이 속성은 TextBox.FontFace 속성과 동기화됩니다. 글꼴을 설정할 때 글꼴 얼굴이 Font.fromEnum(value)로 설정됩니다.

코드 샘플

Cycle Font

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
Show All Fonts

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 속성은 글꼴 열거형에 없는 글꼴을 설정하는 데 유용하지만, 글꼴이 없는 글꼴을 설정하는 데는 글꼴 속성과 비슷합니다.

이 속성은 TextBox.Font 속성과 동기화됩니다. 폰트를 설정할 때 폰트는 해당 열거형 값에 설정되거나 Enum.Font.Unknown 이 경우 매치가 없는 경우 설정됩니다.

LineHeight

병렬 읽기

글꼴의 정사각형 크기와 글꼴 간의 간격을 조정하여 라인의 높이를 제어합니다. TextBox 에 있는 텍스트 줄 간의 스페이스를 조정하여 값 범위를 1.0에서 3.0로 설정합니다.

MaxVisibleGraphemes

병렬 읽기

이 속성은 TextBox 에 표시되는 모든 그래픽 개체(또는 텍스트 단위)의 최대 수를 제어합니다. 그것이 TextBox.PlaceholderText 또는 TextBox.Text를 표시하는지 여부에 관계없이.

속성을 변경하면 표시 가능한 그래픽의 위치나 크기가 변경되지 않습니다. 레이아웃은 모든 그래픽이 표시되는 것처럼 계산됩니다.

속성을 -1로 설정하면 제한이 해제되고 TextBox.Text의 전체가 표시됩니다.

MultiLine

병렬 읽기

설정을 참으로 설정하면 TextBox 내의 텍스트가 여러 줄로 이동할 수 있습니다. 이렇게 하면 플레이어가 입력 키를 사용하여 새 줄로 이동할 수 있습니다.

OpenTypeFeatures

병렬 읽기

OpenTypeFeaturesError

읽기 전용
복제되지 않음
병렬 읽기

PlaceholderColor3

병렬 읽기

텍스트 상자에 텍스트가 입력되지 않은 경우 사용할 텍스트 색상을 설정합니다.

PlaceholderText

병렬 읽기

텍스트 상자에 아직 텍스트가 입력되지 않은 경우 표시되는 텍스트를 설정합니다.Sets the text that gets displayed when no text has been entered into the TextBox yet.

RichText

병렬 읽기

이 속성은 TextBox가 리치 텍스트 서식을 사용하여 문자열을 렌더링하는지 여부를 결정합니다. 리치 텍스트는 간단한 마크업 태그를 사용하여 문자열의 서식을 강조, 범례, 특정 색 등을 지정합니다.

풍부한 텍스트를 사용하려면 단순히 TextBox.Text 문자열에 서식 태그를 포함하십시오.

Class.Toolbar 에 이 속성이 활성화되고 상자가 포커스를 얻을 때 사용자는 모든 서식 문자열포함한 완전한 텍스트를 편집하고 상호 작용할 수 있습니다. 포커스가 잃어지면 텍스트가 자동으로 처리하고 렌더링하여 텍스트를 풍부한 텍스트로 표시합니다.

SelectionStart

병렬 읽기

텍스트 선택의 시작 위치를 결정하거나 -1이 텍스트 상자에 선택한 텍스트가 없는 경우에는 텍스트 상자의 범위가 선택한 텍스트의 범위와 동일합니다. 값이 -1 또는 'Class.Toolbar.CursorPosition|CursorPosition' 와 같으면 ��

코드 샘플

TextBox Selections

local textBox = script.Parent
local function showSelection()
if textBox.CursorPosition == -1 or textBox.SelectionStart == -1 then
print("No selection")
else
local selectedText = string.sub(
textBox.Text,
math.min(textBox.CursorPosition, textBox.SelectionStart),
math.max(textBox.CursorPosition, textBox.SelectionStart)
)
print('The selection is:"', selectedText, '"')
end
end
textBox:GetPropertyChangedSignal("CursorPosition"):Connect(showSelection)
textBox:GetPropertyChangedSignal("SelectionStart"):Connect(showSelection)

ShowNativeInput

병렬 읽기

설정을 트루로 설정하면 플랫폼에 대한 입력이 Roblox의 내장 키보드가 아닌 네이티브 키보드를 사용하게 됩니다.

Text

병렬 읽기

텍스트 속성은 UI 요소에서 표시되는 콘텐츠를 결정합니다. 화면에 표시되는 문자열의 시각적 속성은 <

이 특수 기호(예: 😃) 및 기타 기호를 렌더링할 수 있습니다. 이 특수 기호는 TextBox.TextColor3 속성에 영향을 받지 않습니다. 이 기호는 ScriptLocalScript 개체, 속성 창 내의 필드 모두에 붙여넣을

이 속성에는 새로운 줄 문자가 포함될 수 있지만, 속성 창에서 새로운 줄 문자를 입력할 수는 없습니다. 마찬가지로 이 속성에는 탭 문자가 포함될 수 있지만 대신 공백으로 표시됩니다.

코드 샘플

Fading Banner

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
"Kaboom!" Text

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
Show All Fonts

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
Long Text Wrapping

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
Emoji in Text

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()를 사용하면 문자열에 주어진 텍스트 바운드에 텍스트 크기를 예측할 수 있습니다, TextBox.Font , TextBox.TextSize 및 프레임 크기.

코드 샘플

Dynamic TextBox Size

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 요소에 표시하는 모든 텍스트의 색을 결정합니다. 이 속성과 TextBox.Font , TextBox.TextSize 및 1>Class.Toolbar.TextTransparency1> 와 함��

플레이어가 쉽게 읽을 수 있도록 텍스트를 선택하십시오! 흰색, 회색 또는 검은과 같은 적은 채우기 없는 색을 선택하십시오. TextBox.BackgroundColor3 의 UI 요소의 색과 텍스트의 대비를 얻으려면

코드 샘플

Vowel Detector

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)
TextBox Secret Word

-- 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)
Countdown Text

-- 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
Game State Text

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

병렬 읽기

TextEditable

병렬 읽기

TextEditable 은 사용자가 입력을 통해 Text 를 변경할 수 있는지 여부를 결정합니다. 이 속성을 비활성화하면 ClearTextOnFocus 을 통해 텍스트를 지우는 경우 텍스트가 게임에 복

TextFits

읽기 전용
복제되지 않음
병렬 읽기

텍스트가 텍스트 상자의 제약 사항에 부합하는지 여부입니다.

TextScaled

병렬 읽기

TextScaled 대신 사용하는 것이 좋습니다 AutomaticSize, 새로운 메서드는 가능한 최상의 시각적 결과를 제공하는 동적 크기 조정 기능을 사용하는 것이 좋습니다.

텍스트 크기 조정 속성은 텍스트가 전체 UI 요소의 공간을 채우도록 확대되는지 여부를 결정합니다. 이 속성이 활성화되면 TextBox.TextSize 가 무시되고 TextBox.TextWrapped 가 자동으로 활성화됩니다. 이 속성은 텍스트 �

이 속성이 화면 공간 사용자 인터페이스에 사용되면 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을 동시에 사용하면 자동 크기 조정이 끄기발생하는 차이보다 훨씬 큰 크기 조정 차이가 발생할 수 있습니다.

코드 샘플

Long Text Wrapping

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

병렬 읽기

텍스트 크기 속성은 렌더링된 텍스트의 한 줄의 높이를 결정합니다. 단위는 오프셋이며 포인트가 아닙니다(대부분의 문서 편집 프로그램에서 사용됩니다). "전통" 글꼴은 이 속성을 지원하지 않습니다.

코드 샘플

"Kaboom!" Text

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 속성은 렌더링된 텍스트의 윤곽 또는 색을 설정합니다. 이 속성과 TextBox.TextStrokeTransparency 는 텍스트 윤곽의 시각적 속성을 결정합니다.

텍스트 붓은 일반 텍스트보다 먼저 렌더링되며, 각 방향의 +/- 1개의 픽셀 오프셋에 대해 4개의 렌더링된 텍스트를 나타냅니다. 텍스트 붓 렌더링은 독립적으로 및 동일하게 TextBox.TextColor3TextBox.TextTransparency

코드 샘플

Text Highlight Oscillation

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 속성은 렌더링된 텍스트의 윤곽이나 텍스트의 투명도를 설정합니다. 이 속성과 TextBox.TextStrokeColor3 는 텍스트 윤곽의 시각적 속성을 결정합니다.

텍스트 스트로크는 일반 텍스트 렌더링보다 4번 렌더링되는 텍스트의 일반적인 4

코드 샘플

Text Highlight Oscillation

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 요소에서 렌더링되는 모든 텍스트의 투명도를 결정합니다. 이 속성과 TextBox.Font , TextBox.TextSizeTextBox.TextColor3 은 텍스트의 시각적 속성을 결정

숫자 for-루프를 사용하여 텍스트를 슬라이스하면 화면에 표시되는 텍스트에 플레이어의 관심을 끌 수 있습니다.


-- Count backwards from 1 to 0, decrementing by 0.1
for i = 1, 0, -0.1 do
textLabel.TextTransparency = i
task.wait(0.1)
end

코드 샘플

Fading Banner

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
"Kaboom!" Text

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

TextTruncate

병렬 읽기

이 텍스트 상자에 표시되는 텍스트의 잘림을 제어합니다.

TextWrapped

병렬 읽기

활성화되면 이 속성은 몇 개의 줄 내 GUI 요소의 공간에 텍스트를 렌더링하므로 TextBox.TextBounds 가 GUI 요소의 GuiBase2d.AbsoluteSize 를 초과하지 않습니다.

이 작업은 길은 텍스트 줄을 여러 줄로 나누어 달성합니다. 줄 분리는 백스페이스를 선호하지만 길지 않은 단어가 요소 너비를 초과하면 줄이 여러 줄로 나뉩니다.

가로 길이 변경으로 텍스트의 垂直 높이(TextBox.TextBounds의 Y 구성 요소)가 요소의 垂直 높이( Class.GuiBase2d.AbsoluteSize)를 초과하면 해당 줄은 표시되지 않습니다.

코드 샘플

Long Text Wrapping

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 요소 직사각형의

이 속성은 TextBox.TextYAlignment 와 함께 사용되어 두 축 모두에 대한 텍스트 정렬을 완전히 결정합니다. 이 속성은 읽기 전용 속성 TextBox.TextBoundsTextBox.TextFits 에는 영향을 주지 않습니다.

코드 샘플

Text Alignment

-- 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축)을 결정합니다. 위와 아래의 경우 텍스트 경계가 단지 텍스트 요소 영역의 가장자리에 도달하도록 합니다. 센터의 경우 위/아래 텍스트 경계가 모두 텍스트 요소 영

이 속성은 TextBox.TextXAlignment 와 함께 사용되어 양축 사이의 텍스트 맞춤에 완전히 결정됩니다. 이 속성은 읽기 전용 속성 TextBox.TextBoundsTextBox.TextFits 에는 영향을 주지 않습니다.

코드 샘플

Text Alignment

-- 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

메서드

CaptureFocus

void

클라이언트가 TextBox에 집중하도록 합니다.


반환

void

코드 샘플

TextBox:CaptureFocus

local ContextActionService = game:GetService("ContextActionService")
local ACTION_NAME = "FocusTheTextBox"
local textBox = script.Parent
local function handleAction(actionName, inputState, _inputObject)
if actionName == ACTION_NAME and inputState == Enum.UserInputState.End then
textBox:CaptureFocus()
end
end
ContextActionService:BindAction(ACTION_NAME, handleAction, false, Enum.KeyCode.Q)

IsFocused

텍스트 상자가 집중되면 참이고, 그렇지 않으면 거짓입니다.


반환

ReleaseFocus

void

클라이언트가 TextBox를 잠깐 떠나게 합니다. submitted 이벤트에서 enterPressed 매개 변수를 오버라이드하면 TextBox.FocusLost 이벤트에서 2>TextBox2> 매개 변수를 오버라이드할 수 있습니다.

이 항목은 온라인 모드에서 작동하려면 LocalScript 와 함께 사용해야 합니다.

아래에 표시된 코드는 클라이언트가 선택한 후 5초 동안 'Texture'를 포커스 해제하지 않도록 강제합니다.


local TextBox = script.Parent
TextBox.Focused:Connect(function()
wait(5)
TextBox:ReleaseFocus()
end)

위의 예시는 텍스트 상자의 자식으로 로컬 스크립트에 있다는 점을 고려하십시오.

매개 변수

submitted: bool
기본값: false

반환

void

코드 샘플

TextBox:ReleaseFocus

local textBox = script.Parent
local function onFocused()
task.wait(5)
textBox:ReleaseFocus()
end
textBox.Focused:Connect(onFocused)

이벤트

FocusLost

클라이언트가 텍스트 상자를 떠나게 할 때 발생합니다. 일반적으로 클라이언트가 텍스트 상자 밖으로 클릭하거나 탭할 때 발생합니다. 이 경우 텍스트 상자가 사용자에게 집중하도록 하는 경우에도 발생합니다.

텍스트 상자가 포커스를 얻고 잃을 때를 추적하는 데 TextBox.Focused 와 함께 사용할 수 있습니다.

또한 UserInputService.TextBoxFocusedUserInputService.TextBoxFocusReleased를 참조하십시오. UserInputService 서비스에 의존하는 유사한 기능에 대해.

이 이벤트는 LocalScript에서만 발생합니다.

매개 변수

enterPressed: bool

클라이언트가 초점을 잃도록 엔터를 누른 경우(진실), 아니도록 누른 경우(거짓).

inputThatCausedFocusLoss: InputObject

텍스트 상자가 초점을 잃게 한 입력의 유형을 나타내는 InputObject 인스턴스.


코드 샘플

TextBox.FocusLost1

local gui = script.Parent
local textBox = gui.TextBox
local function focusLost(enterPressed)
if enterPressed then
print("Focus was lost because enter was pressed!")
else
print("Focus was lost without enter being pressed")
end
end
textBox.FocusLost:Connect(focusLost)
FocusLost

local textBox = script.Parent
local function onFocusLost(enterPressed, inputThatCausedFocusLost)
if enterPressed then
print("Player pressed Enter")
else
print("Player pressed", inputThatCausedFocusLost.KeyCode)
end
end
textBox.FocusLost:Connect(onFocusLost)

Focused

클라이언트가 텍스트 입력을 시작하려고 텍스트 상자를 클릭/탭하면 <Class.Toolbar> 가 초점을 얻을 때 발생합니다. 이 경우 텍스트 입력을 시작하는 경우 텍스트 상자에 포커스를 두는 경우에도 발생합니다.

텍스트 상자의 초점을 잃고 다시 얻을 때 TextBox.FocusLost 와 함께 사용할 수 있습니다.

또한 UserInputService.TextBoxFocusedUserInputService.TextBoxFocusReleased를 참조하십시오. UserInputService 서비스에 의존하는 유사한 기능에 대해.

이 이벤트는 LocalScript에서만 발생합니다.


코드 샘플

Focus

local textBox = script.Parent
local function onFocused()
print("Focused")
end
textBox.Focused:Connect(onFocused)

ReturnPressedFromOnScreenKeyboard