TextLabel
*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.
Un TextLabel renderiza un rectángulo, como un Frame con texto estilado. El rectángulo se puede usar para definir límites de texto, escalado de texto ( TextLabel.TextScaled ) y envolver ( TextLabel.TextWrapped, 2>Class.TextLabel.TextYWrap2>).
Esta clase contiene propiedades que controlan la pantalla del texto, como TextLabel.Font y TextLabel.TextColor3 . Todo el texto que se renderiza por un solo etiqueta de texto tendrá las mismas propiedades visuales; múltiples objetos de etiqueta de texto deben usarse para renderizar varios estilos de texto. Para mostrar solo el texto y oc
TextService:GetTextSize() se puede usar para obtener el tamaño ( bound ) del texto que se renderizaría en un TextLabel dado un tamaño de fuente, fuente y tamaño de marco.
Un objeto UITextSizeConstraint se puede usar para limitar el tamaño del texto con TextLabel.TextScaled habilitado. Se recomienda que el tamaño del texto no sea inferior a 9, de lo contrario, puede no ser visible para la mayoría de los usuarios.
Muestras de código
-- 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)
Resumen
Propiedades
Una copia de TextLabel.Text que contiene exactamente lo que se está renderizando por el TextLabel .
Determina el tipo de fuente que se utiliza para rendizar el texto.
Determina el tipo de fuente que se utiliza para rendizar el texto.
Escala el espaciado entre líneas de texto en el TextLabel .
Establece si un TextLabel debe ser GuiBase2d.Localize o no.
El número máximo de gráficos que la TextLabel puede mostrar.
Determina si el TextLabel renderiza la TextLabel.Text cuerda usando formato de texto rico.
Determina la cadena que se muestra por el elemento de la interfaz de usuario.
El tamaño del texto de un elemento de UI en oficios.
Esta propiedad determina el color del texto renderizado.
Activa cuando el contenido de texto al rendimiento no cabe dentro del espacio del elemento de UI.
Determina si el texto en un elemento de la interfaz de usuario se escala para llenar el elemento de la interfaz de usuario.
Determine la altura de la línea de texto en los desplazamientos.
Determina el color del texto de relleno (contorno).
Determina la transparencia del texto (contorno).
Determina la transparencia del texto renderizado.
Controla la recortadora de texto que se muestra en este TextLabel.
Determina si el texto se envuelve en múltiples líneas dentro del espacio de elemento GUI , cortando el texto de exceso.
Determina el alineamiento horizontal del texto renderizado.
Determina el alineamiento vertical del texto renderizado.
Determina si este elemento de la interfaz de usuario acepta la entrada.
Determina el punto de origen de un GuiObject , relativo a su tamaño absoluto.
Determina si se produce el escalado en función del contenido de los hijos.
Determina el color de fondo de GuiObject
Determina la transparencia de la capa de fondo y el borde de GuiObject
Determina el color de la frontera de GuiObject .
Determina de qué manera se coloca el límite de GuiObject en relación con sus dimensiones.
Determina el ancho de píxel de la frontera GuiObject .
Determina si el descendiente GuiObjects fuera de los límites de un elemento GUI padre debe Renderizar.
Determina si el mouse del jugador está siendo presionado activamente en el GuiObject o no.
Determina si el GuiButton se puede interactuar con o no, o si el GuiState del GuiObject está cambiando o no.
Controla el orden de clasificación del GuiObject cuando se usa con un UIGridStyleLayout .
Establece el GuiObject que se seleccionará cuando el seleccionador de plataforma de juego se mueva hacia abajo.
Establece el GuiObject que se seleccionará cuando el seleccionador de plataforma se mueva a la izquierda.
Establece el GuiObject que se seleccionará cuando el seleccionador de plataforma de juegos se mueva a la derecha.
Establece el GuiObject que se seleccionará cuando el seleccionador de plataforma de juego se mueva hacia arriba.
Determina la posición de píxeles y escalares de GuiObject .
Determina el número de grados en los que se gira el GuiObject .
Determine si el GUI puede ser seleccionado por un controlador para juego.
Sobrecarga el adorno de selección predeterminado utilizado para las plataformas de juegos.
El orden de GuiObjects seleccionado por la interfaz de usuario del gamepad.
Determina el tamaño de píxeles y escalares del GuiObject .
Establece los ejes Size en los que se basará el GuiObject relativos al tamaño de su padre.
Una propiedad mixta de BackgroundTransparency y TextTransparency .
Determina si el GuiObject y sus descendientes serán renderizados.
Determina el orden en que se renderiza un GuiObject en relación con los demás.
Describe la posición de pantalla actual de un elemento de UI, en píxeles.
Describe la rotación de pantalla actual de un elemento de UI, en grados.
Describe el tamaño de pantalla actual de un elemento de UI, en píxeles.
Cuando esté configurado como verdadero, la localización se aplicará a este GuiBase2d y sus descendientes.
Una referencia a un LocalizationTable para ser usado para aplicar la localización automatizada a este GuiBase2d y sus descendientes.
Personaliza el comportamiento de la selección del gamepad en la dirección de abajo.
Personaliza el comportamiento de la selección del gamepad en la dirección de la izquierda.
Personaliza el comportamiento de la selección del gamepad en la dirección correcta.
Personaliza el comportamiento de la selección del gamepad en la dirección de arriba.
Permite la personalización del movimiento de la plataforma de juego.
Métodos
Métodos heredados de GuiObject- TweenPosition(endPosition : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
Mueve con suavidad un GUI a un nuevo UDim2 .
- TweenSize(endSize : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
Escala con suavidad un GUI a un nuevo UDim2 .
- TweenSizeAndPosition(endSize : UDim2,endPosition : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
Mueve con suavidad una GUI a un nuevo tamaño y posición.
Eventos
Eventos heredados de GuiObjectSe ha disparado cuando un usuario comienza a interactuar a través de un dispositivo de interfaz humana-ordenador (botón de ratón, toque para comenzar, botón de teclado, etc).
Se activa cuando un usuario cambia cómo interactúa a través de un dispositivo de interfaz humana-ordenador (botón de ratón, toque para comenzar, botón de teclado, etc).
Se ha disparado cuando un usuario deja de interactuar a través de un dispositivo de interfaz humana-ordenador (botón de ratón, toque para empezar, botón de teclado, etc).
Dispara cuando un usuario mueve su mouse hacia un elemento GUI.
Se activa cuando un usuario mueve el mouse fuera de un elemento de la GUI.
Dispara cuando un usuario mueve el mouse mientras está dentro de un elemento GUI.
Dispara cuando un usuario desplaza su rueda de ratón cuando el ratón está sobre un elemento de GUI.
Se activa cuando un usuario desplaza su rueda de ratón hacia delante cuando el ratón está sobre un elemento de GUI.
Se activa cuando el GuiObject está siendo enfocado con el GamepadSelector.
Se activa cuando el GamepadSelector deja de enfocarse en el GuiObject.
Se activa cuando el jugador comienza, continúa y termina presionando el elemento de la interfaz de usuario.
- TouchPan(touchPositions : Array,totalTranslation : Vector2,velocity : Vector2,state : Enum.UserInputState):RBXScriptSignal
Dispara cuando el jugador mueve su dedo en el elemento de la interfaz de usuario.
- TouchPinch(touchPositions : Array,scale : number,velocity : number,state : Enum.UserInputState):RBXScriptSignal
Dispara cuando el jugador realiza un gesto de pinchazo o de tiro usando dos dedos en el elemento de la interfaz de usuario.
- TouchRotate(touchPositions : Array,rotation : number,velocity : number,state : Enum.UserInputState):RBXScriptSignal
Dispara cuando el jugador realiza un gesto de rotación usando dos dedos en el elemento de la interfaz de usuario.
Se activa cuando el jugador realiza un gesto de desplazamiento en el elemento de la interfaz de usuario.
Se activa cuando el jugador realiza un gesto de toque en el elemento de la interfaz de usuario.
- SelectionChanged(amISelected : bool,previousSelection : GuiObject,newSelection : GuiObject):RBXScriptSignal
Se activa cuando la selección del gamepad se mueve, se va o cambia dentro de la GuiBase2d conectada o cualquier descendiente de GuiObjetos.
Propiedades
ContentText
Esta propiedad proporciona una copia de TextLabel.Text que contiene exactamente lo que se está renderizando por el TextLabel . Esto es útil para eliminar las etiquetas de estilo que se usan para el texto rico.
Ejemplo
Cuando TextLabel.RichText está habilitado, la propiedad TextLabel.ContentText muestra el texto como aparece al jugador.
<tbody><tr><td>falso</td><td>\<b>Hola, mundo!\</b></td><td>\<b>Hola, mundo!\</b></td></tr><tr><td>cierto</td><td>\<b>Hola, mundo!\</b></td><td>Hola, mundo!</td></tr></tbody>
Texto Rico | Texto | Texto de Contenido |
---|
Font
La propiedad Fuente selecciona una de varias fuentes predeterminadas con las que se renderizará el texto de la interfaz de usuario. Algunas fuentes tienen versiones negritas, subrayado y/o ligeras (como no hay propiedades de peso de fuente o estilo de fuente).
Con la excepción de la fuente "Legacy", cada fuente renderizará el texto con la altura de línea igual a la propiedad TextLabel.TextSize. La fuente "Code" es la única fuente de monoespacio. Tiene la propiedad única que cada personaje tiene la misma longitud y altura de la propiedad TextLabel.TextSize . La longitud de cada personaje es aproximadamente la mitad de la propiedad <
Esta propiedad se mantiene sincronizada con la propiedad TextLabel.FontFace. Cuando se establece el tipo de fuente, el tipo de fuente se establecerá en Font.fromEnum(value) .
Muestras de código
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
La propiedad FontFace es similar a la propiedad Fuente, pero permite establecer fuentes que no existen en el índice de fuentes.
Esta propiedad se mantiene sincronizada con la propiedad TextLabel.Font. Cuando se configura el modo de fuente, la fuente se establece en el valor de enlace correspondiente, o en Enum.Font.Unknown si no hay coincidencias.
LineHeight
Controla la altura de las líneas, como múltiplo del tamaño de la fuente, escalando el espaciado entre las líneas de texto en el TextLabel . Los valores válidos se pueden encontrar entre 1.0 y 3.0, con valores predeterminados que oscilan entre 1.0 y 1.5.
MaxVisibleGraphemes
Esta propiedad controla el número máximo de gráficos (o unidades de texto) que se muestran en el TextLabel . Se proporciona principalmente como una forma fácil de crear un "efecto de tipo escribidor" en el que los personajes aparecen uno a la vez.
Cambiar la propiedad no cambia la posición o tamaño de los gráficos de propiedad visible - el diseño se calculará como si todos los gráficos de propiedad estuvieran visibles.
Establecer la propiedad a -1 desactiva el límite y muestra la totalidad del TextLabel.Text .
Muestras de código
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
Esta propiedad determina si el TextLabel renderiza la TextLabel.Text cuerda usando formato de texto rico. El texto rico usa etiquetas de marcado simples para estilar secciones de la cuerda en negrito, cursiva, colores específicos y más.
Para usar texto rico, simplemente incluya etiquetas de formato en la TextLabel.Text cadena.
Text
La propiedad de texto determina el contenido que se muestra por el elemento de UI. Las propiedades visuales de la cadena se determinan por TextLabel.TextColor3 , <
Es posible renderizar emoji (por ejemplo, 😃) y otros símbolos. Estos símbolos especiales no están afectados por la propiedad TextLabel.TextColor3 . Estos se pueden pegar en Script y LocalScript objetos, así como en la ventana de propiedades.
Esta propiedad puede contener caracteres de nueva línea, sin embargo, no es posible escribir nuevos caracteres de nueva línea dentro de la ventana Propiedades. De manera similar, esta propiedad puede contener un carácter de pestaña, pero se renderizará como un espacio en su lugar.
Muestras de código
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
La propiedad TextBounds solo de lectura refleja el tamaño absoluto del texto en los desplazamientos. En otras palabras, si intenta alinear el texto en un rectángulo, esta propiedad reflejará las dimensiones mínimas del rectángulo que necesitaría para alinear el texto.
Al usar TextService:GetTextSize() , puede predecir qué será TextBounds en un TextLabel dado una cadena, TextLabel.Font , TextLabel.TextSize y el tamaño de la ventana.
Muestras de código
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
Esta propiedad determina el color de todo el texto renderizado por un elemento GUI >. Esta propiedad junto con TextLabel.Font , TextLabel.TextSize y 2>Class.TextLabel.Transparency2> determinará las propiedades visuales del texto. El texto se renderiza después de la curva de text
¡Es importante que el texto se lea fácilmente por los jugadores! Asegúrese de elegir colores con poca o ninguna saturación, como blanco, gris o negro. Asegúrese de que el color de su texto esté contrastado por el TextLabel.BackgroundColor3 del elemento GUI. Si el elemento tiene un fondo transparente, intente aplicar un negro
Muestras de código
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
El TextFits es una propiedad de lectura que es falso si el contenido de TextLabel.Text no se ajusta dentro del GuiBase2d.AbsoluteSize cuando se renderiza. Si Class.TextLabel.TextWrapped
Muestras de código
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
En lugar de usar TextScaled, recomendamos que consideres usar AutomaticSize, un nuevo método para escalar dinámicamente el tamaño de la interfaz de usuario que te dará el mejor resultado visual posible.
La propiedad TextScaled determina si el texto se escala para llenar todo el espacio del elemento de UI. Cuando esto está habilitado, TextLabel.TextSize se ignora y TextLabel.TextWrapped se habilita automáticamente. Esta propiedad es útil para renderizar elementos de texto dentro de BillboardGuis .
Cuando esta propiedad se usa para la interfaz de usuario de espacio de pantalla, puede ser deseable usar un UITextSizeConstraint para restringir el rango de posibles tamaños de texto.
TextScaled y AutomaticSize
Se recomienda que los desarrolladores eviten el uso de TextScaled y ajusten la interfaz de usuario para aprovechar la propiedad AutomaticSize en su lugar. Estas son las diferencias clave entre las dos propiedades:
- TextScaled escala el contenido (texto) para albergar la interfaz de usuario. Sin una consideración cuidadosa, alguno del texto puede volverse ilegible si se escala demasiado pequeño.
- AutomaticSize ajusta el tamaño de la interfaz de usuario para albergar el contenido.
Con AutomaticSize, puede ajustar su interfaz de usuario para albergar el contenido (texto) mientras mantiene un tamaño de fuente consistente. Para obtener más información sobre cómo usar el tamaño de fuente automático, consulte el artículo Automatic Size de la interfaz de usuario.
Recomendamos que no apliques TextScaled y AutomaticSize en el mismo objeto de interfaz de usuario. Si aplicas ambas propiedades:
- AutomaticSize determina la cantidad máxima de espacio disponible que un GuiObject puede usar (en este caso, texto)
- TextScaled usa el espacio disponible determinado por AutomaticSize, para escalar el tamaño de fuente para llenar el espacio disponible, que se expandirá hasta el tamaño máximo de fuente (100), si no hay limitaciones de tamaño
- El resultado final será: el texto se alcanza el tamaño de fuente 100 y el objeto de la interfaz de usuario se expandirá para ajustar ese texto
Usar ambos tamaños automáticos y texto escalado al mismo tiempo puede resultar en diferencias de escalado importantes que cuando AutomaticSize está desactivado.
Muestras de código
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
La propiedad TextSize determina la altura en oficios de una línea de texto renderizado. La unidad está en oficios, no puntos (que se usa en la mayoría de los programas de edición de documentos). Es de notar que la altura de la línea de fuente "Legacy" se comporta de manera diferente y no coincide con esta propiedad exactamente.
Esta propiedad y TextLabel.TextColor3 , TextLabel.TextTransparency , TextLabel.TextStrokeColor3 y 1> Class.TextLabel.TextStrokeTransparency1> cada una de ellas influye en la forma en que se renderiza el texto.
Esta propiedad supera a TextLabel.FontSize ya que es un número y no un enum. Internamente, Roblox usa varios conjuntos de imágenes de personajes pre-renders para cada tamaño de cada fuente. Elige el tamaño más cercano a TextSize, luego escala ese conjunto de imágenes de personajes para renderizar el texto. Antes de la introducción de esta propiedad, solo
Muestras de código
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
La propiedad TextStrokeColor3 establece el color del cursor, o contorno, del texto renderizado. Esta propiedad y TextLabel.TextStrokeTransparency determinan las propiedades visuales del texto del cursor.
El texto se renderiza antes del texto normal y es simplemente 4 renderings del mismo texto en +/- 1 pixel offsets en cada dirección. El rendimiento de texto está trabajando de forma independiente y idéntica a TextLabel.TextColor3 y TextLabel.TextTransparency .
Muestras de código
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
La propiedad TextStrokeTransparency establece la transparencia del stroke, o contorno, del texto renderizado. Esta propiedad y TextLabel.TextStrokeColor3 determinan las propiedades visuales del stroke del texto.
El texto se renderiza antes del texto normal y es simplemente 4 renderings del mismo texto en +/- 1 pixel offsets en cada dirección. El texto se renderiza independientemente y de forma idént
Muestras de código
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
La propiedad TextColor3 determina la transparencia de todo el texto renderizado por un elemento de UI. Esta propiedad junto con TextLabel.Font , TextLabel.TextSize y TextLabel.TextColor3 determinará las propiedades visuales del texto. El texto se renderiza después de la curva de texto ( 1> Class.TextLabel.TextStrokeTrans
El texto desapariciendo en el uso de un for-loop es una manera fantástica de llamar la atención del jugador en el texto que aparece en la pantalla.
-- Count backwards from 1 to 0, decrementing by 0.1for i = 1, 0, -0.1 dotextLabel.TextTransparency = itask.wait(0.1)end
Muestras de código
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
Cuando esté habilitado, esta propiedad renderizará el texto en múltiples líneas dentro del espacio de un GUI elemento para que TextLabel.TextBounds nunca exceda el GuiBase2d.AbsoluteSize de el elemento de la interfaz de usuario.
Esto se logra al dividir long lines of text into multiple lines. Los saltos de línea preferirán espacio en blanco; si una palabra no brocada supera el ancho del elemento, esa palabra se dividirá en múltiples líneas.
Si se producen más líneas rotas, la altura vertical del texto (el componente Y de TextLabel.TextBounds ) superará la altura vertical del elemento (el componente Y de GuiBase2d.AbsoluteSize ) y, en todos/todascaso, no se renderizará ninguna línea.
Muestras de código
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 determina el alineamiento horizontal (X-axis) del texto renderizado dentro del espacio de un elemento de UI. Funciona similarmente a la propiedad de texto de alineamiento de izquierda, derecha y centro (no hay opción de justificación). Para izquierda y derecha, el texto se renderiza para que los límites de texto izquierdo/derecho solo toquen el borde del rectángulo de elemento de UI. Para Centro, cada línea de texto se centra en el centro del elemento de UI.
Esta propiedad se usa en conjunción con TextLabel.TextYAlignment para determinar completamente el alineamiento del texto en ambos ejes. Esta propiedad no afectará a las propiedades de lectura TextLabel.TextBounds y TextLabel.TextFits .
Muestras de código
-- 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 determina el alineamiento vertical (Y-axis) del texto renderizado dentro del espacio de un elemento de UI. Para los elementos de arriba y abajo, el texto se renderiza para que el límite superior/ inferior del texto solo toque el borde del elemento UI. Para el centro, el texto se renderiza para que haya un espacio igual desde los límites superiores del texto hasta la parte superior del elemento y los límites inferiores del texto hasta la parte inferior del elemento.
Esta propiedad se usa en conjunción con TextLabel.TextXAlignment para determinar completamente el alineamiento del texto en ambos ejes. Esta propiedad no afectará las propiedades de lectura TextLabel.TextBounds y TextLabel.TextFits .
Muestras de código
-- 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