TextLabel
*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。
テキストラベルは、スタイル付きのテキストとして Frame のような長方形をレンダリングします。長方形は、テキストの境界を定義、テキストスケーリング ( TextLabel.TextScaled ) およびラッピング ( Class.TextLabel.Text
このクラスには、テキストの表示を制御するプロパティが含まれています。例えば、 TextLabel.Font や TextLabel.TextColor3 など。 1つのテキストレーベルによってレンダリングされるすべてのテキストのレンダリングには、同じビジュ
TextService:GetTextSize() は、フォントサイズ、フォント、フレームサイズを指定したテキストラベルにレンダリングするテキストのサイズ (範囲) を取得するために使用できます。
Class.UITextSizeConstraint オブジェクトは、TextLabel.TextScaled を有効にした状態でテキストのサイズを制限できます。テキストのサイズは、そうでないと、ほとんどのユーザーに表示されない可能性があります。
コードサンプル
-- 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.Text が含まれるコピー。TextLabel がレンダリングする内容を含んでいます。
テキストをレンダリングするフォントを決める。
テキストをレンダリングするフォントを決める。
Class.TextLabel のテキストの行間をスケールします。
Class.TextLabel が GuiBase2d.Localize であるかどうかを設定します。
Class.TextLabel が表示できる最大グラフェム数。
Rich テキストフォーマットを使用しているかどうかを決定します。 TextLabel.Text ストリング。
UI 要素によって表示される文字列を決定します。
オフセットで UI 要素のテキストのサイズ。
このプロパティは、レンダリングされたテキストの色を決定します。
UI エレメントのスペースにテキストコンテンツが合わないときに有効になります。
UI 要素のテキストが UI 要素を満たすかどうかを決定します。
オフセットのテキストの行高を決める。
テキストストロークの色を決定します (アウトライン)。
テキストストロークの透明度を決めます (アウトライン)。
レンダリングされたテキストの透明度を決める。
この TextLabel に表示されるテキストのトリミングを制御します。
テキストラップを GUI 要素のスペース内に複数行にラップし、余分なテキストをカットします。
レンダリングされたテキストの横向きに決定します。
レンダリングされたテキストの垂直アラインメントを決定します。
この UI 要素が入力を沈めるかどうかを決定します。
Class.GuiObject のオリジンポイントを決定し、相対的なサイズに対して Class.GuiObject のオリジンポイントを決定します。
子コンテンツに基づいてサイズ変更が発生するかどうかを決定します。
Class.GuiObject の背景色を決定します。
Class.GuiObject の背景と境界を透明化する。
Class.GuiObject ボーダーの色を決定します。
Class.GuiObject ボーダーの位置相対を決定します。
Class.GuiObject ボーダーのピクセル幅を決定します。
親 GUI 要素の外にある子 GUI 要素がレンダリングするべきかどうかを決定します。
プレイヤーのマウスが GuiObject 上で積極的に押されているかどうかを決定します。
Class.GuiButton がインタラクト可能かどうかを決定します。GuiState の GuiObject が変更されているかどうか。
Class.UIGridStyleLayout と一緒に使用されると、UIGridStyleLayout のソートオーダーを制御します。
ゲームパッドのセレクターが下に移動すると、GuiObject が選択されます。
ゲームパッドのセレクターが左に移動したときに選択される GuiObject を設定します。
ゲームパッドのセレクターが右に移動したときに選択される GuiObject を設定します。
ゲームパッドセレクターが上に移動すると、GuiObject が選択されます。
Class.GuiObject のピクセルとスカラーポジションを決定します。
Class.GuiObject が回転する度数を決定します。
ゲームパッドで GUI を選択できるかどうかを決定します。
ゲームパッドのデフォルトの装飾をオーバーライドします。
ゲームパッド UI の選択によって選択された GuiObjects のオーダー。
Class.GuiObject のピクセルとスケーラーサイズを決定します。
Class.GuiObject.BackgroundTransparency|BackgroundTransparency と TextTransparency のミックスプロパティ。
Class.GuiObject とその子孫がレンダリングされるかどうかを決定します。
他の 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
GUIを新しい UDim2 にスムーズに移動します。
- TweenSize(endSize : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
GUI を新しい UDim2 にスムーズにサイズ変更します。
- TweenSizeAndPosition(endSize : UDim2,endPosition : UDim2,easingDirection : Enum.EasingDirection,easingStyle : Enum.EasingStyle,time : number,override : bool,callback : function):bool
GUI を新しいサイズと位置にスムーズに移動させます。
イベント
GuiObject から継承した イベントユーザーが人間コンピューターインターフェイスデバイス (マウスボタン、タッチボタン、キーボードボタンなど) を介してインタラクトし始めると、発動します。
ユーザーが人間コンピューターインターフェースデバイス (マウスボタン、タッチボタン、キーボードボタンなど) でどのようにインタラクトするかを変更すると、発動します。
ユーザーが人間コンピューターインターフェイスデバイス(マウスボタン、タッチボタン、キーボードボタンなど)を通じての交流を停止すると、発射されます。
ユーザーがマウスをGUIエレメントに移動すると、ファイアが発生します。
ユーザーが GUI 要素からマウスを移動したときに発動します。
ユーザーが GUI 要素の中にマウスを移動すると、発動します。
マウスが GUI 要素の上にあるときに、ユーザーがマウスホイールを戻したときに発動します。
マウスが GUI 要素の上にあるときに、ユーザーがマウスホイールを前にスクロールすると、ファイアが発生します。
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 エレメントの 2つの指を使用してピンチや引っ掛けを行うときに発動します。
- TouchRotate(touchPositions : Array,rotation : number,velocity : number,state : Enum.UserInputState):RBXScriptSignal
ユーザーが UI 要素に 2 つの指を使用して回転を実行すると、ファイアが発動します。
プレイヤーが 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
フォントプロパティは、UI 要素がテキストをレンダリングするために使用できるいくつかのフォントのうちの 1 つを選択します。フォントの重量やスタイルのプロパティはありません。
「レガシー」フォントを除き、各フォントは、TextLabel.TextSize プロパティと同じ行高でテキストをレンダリングします。「コード」フォントは、すべてのキャラクターに 1:2 の完全な幅と高さ比率を持つユニークなプロパティを持つ唯一のモノスペースフォ
このプロパティは、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 プロパティは、Font プロパティと似ていますが、Font 枚数に存在しないフォントを設定できます。
このプロパティは、TextLabel.Font プロパティと同期されています。FontFace を設定すると、フォントは対応する枚数の値に設定されます。また、一致がない場合は Enum.Font.Unknown に設定されます。
LineHeight
クラス テキストラベルのサイズ の 2 倍の行の高さを制御します。これは、フォントのスクエアサイズの複数である TextLabel のテキストの行の間のスペースをスケールすることで、行の高さをコントロールします。デフォルトは 1.0 から 3.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 文字列をレンダリングするかどうかを決定します。リッチテキストは、シンプルなマークアップタグを使用して、文字列の強調、イタリック、色などをスタイルに合わせて設定します。
リッチテキストを使用するには、TextLabel.Text 文字列にフォーマットタグを含めるだけです。
Text
テキストプロパティは、UI 要素によってレンダリングされるコンテンツを決定します。ストリングのビジュアルプロ
絵文字 (たとえば、 😃) や他のシンボルをレンダリングすることができます。これらの特殊なシンボルは 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
[テキストの境界] プロパティは、オフセットの読み取りで実際のテキストのサイズを反映します。つまり、テキストをレンダリングしたオクジェクトにフィットするために、テキストを正方形に拡大/縮小する必要があります。
Class.TextService:GetTextSize() を使用す文字列と、TextLabel.Font、TextLabel.TextSize およびフレームサイズを予測できます。
コードサンプル
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.Transparency</
プレイヤーに簡単に読み取れるテキストが重要です! 色を選択するときは、TextLabel.BackgroundColor3 の GUI 要素の背景とコントラストを保つために、少し-Saturationの色を選択してください。要素の透明なバックグラウンドの場
コードサンプル
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 コンテンツが GuiBase2d.AbsoluteSize に合わないときに、TextLabel.TextWrapped が偽であるか、
コードサンプル
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 のサイズをダイナミックにサイズ変更できます。
TextScaled プロパティは、テキストが全体の UI 要素のスペースを満たすようにスケールされているかどうかを決定します。これを有効にすると、 TextLabel.TextSize は無視され、 TextLabel.TextWrapped は自動的に有効になります。このプロパティは、Class.Billboard
このプロパティを画面スペース UI に使用する場合、UITextSizeConstraint を使用して、可能なテキストサイズの範囲を制限することが望ましいかもしれません。
TextScaled と自動サイズ
テキストスケールを使用することを避け、代わりに UI を調整することを開発者は推奨されます。以下は 2つのプロパティ間の主要な違いです:
- TextScaled は、UI に対応するためにコンテンツ (テキスト) を拡大します。無駄な拡大により、一部のテキストが小さすぎて読み取りにくくなる可能性があります。
- AutoSize は、コンテンツに対応するために UI をサイズ変更します。
AutomaticSize を使用すると、UI を拡大/縮小してコンテンツを満たすために、フォントサイズを一貫して保つことができます。For more information on how to use automatic sizing, see the UI Automatic Size article.
TextScaled と AutomaticSize を同じ UI オブジェクトに適用しないことをお勧めします。両方のプロパティを適用すると、
- 自動サイズは、GuiObject が使用できる最大スペースの量を決定します (この場合、テキスト)
- TextScaled は、AutomaticSize によって決定された利用可能なスペースを使用して、フォントサイズを自動サイズに拡大し、最大フォントサイズ (100) に到達するためにフォントサイズを変更します。サイズ制限がない場合
- 結果は以下になります:テキストは 100 文字サイズに拡大され、UI オブジェクトはそのテキストに対応するように拡張されます
両方のオートサイズとテキストスケールを同時に使用すると、オートサイズがオフのときよりも大きなスケールオフの差が発生する可能性があります。
コードサンプル
local textLabel = script.Parent
-- This text wrapping demo is best shown on a 200x50 px rectangle
textLabel.Size = UDim2.new(0, 200, 0, 50)
-- Some content to spell out
local content = "Here's a long string of words that will "
.. "eventually exceed the UI element's width "
.. "and form line breaks. Useful for paragraphs "
.. "that are really long."
-- A function that will spell text out two characters at a time
local function spellTheText()
-- Iterate from 1 to the length of our content
for i = 1, content:len() do
-- Get a substring of our content: 1 to i
textLabel.Text = content:sub(1, i)
-- Color the text if it doesn't fit in our box
if textLabel.TextFits then
textLabel.TextColor3 = Color3.new(0, 0, 0) -- Black
else
textLabel.TextColor3 = Color3.new(1, 0, 0) -- Red
end
-- Wait a brief moment on even lengths
if i % 2 == 0 then
task.wait()
end
end
end
while true do
-- Spell the text with scale/wrap off
textLabel.TextWrapped = false
textLabel.TextScaled = false
spellTheText()
task.wait(1)
-- Spell the text with wrap on
textLabel.TextWrapped = true
textLabel.TextScaled = false
spellTheText()
task.wait(1)
-- Spell the text with text scaling on
-- Note: Text turns red (TextFits = false) once text has to be
-- scaled down in order to fit within the UI element.
textLabel.TextScaled = true
-- Note: TextWrapped is enabled implicitly when TextScaled = true
--textLabel.TextWrapped = true
spellTheText()
task.wait(1)
end
TextSize
TextSize プロパティは、1つのレンダリングテキストの行のオフセットの高さを決定します。ユニットはオフセットであり、ポイントではありません (これは、ほとんどのドキュメントエディタプログラムで使用されている) 。「レガシー」フォントの行高は異なりますが、このプロパティは正確に一致しません。
このプロパティと TextLabel.TextColor3、TextLabel.TextTransparency、TextLabel.TextStrokeColor3 および 1> Class.TextLabel.TextStrokeTransparency1> は、テキストがレンダリングされる方法に影響を与えます。
このプロパティは TextLabel.FontSize ですが、Enum.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 および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 は、テキストストロークのビジュアルプロパティを決定します。
テキストストロークは、通常のテキストと同じく、1ピクセルオフセットの +/- 1 方向の 4 個のレンダ
コードサンプル
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 要素の GuiBase2d.AbsoluteSize を超えることはありません。
これは、長いテキストの行を複数の行に分割することで達成されます。行の分割は白紙を好むことがあります。長い未完成のワードがエレメントの幅を超えると、そのワードは複数の行に分割されます。
次の行の空白が、テキストの垂直高度 (TextLabel.TextBounds の Y コンポーネント) をエレメントの垂直高度 (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
TextXAlignment は、UI 要素のスペース内のテキストの横向きに準拠します (X 軸) 。これは、 CSS テキストアルインコンプリートプロパティと同様に機能します (左、右、中央の値がありません)。For Left と Right の場合、テキストは左/右のテキスト境界に触れるようになります (センターではな
このプロパティは 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 軸) は、UI 要素のスペース内のテキストのレンダリングを決定します。トップとボトムの場合、テキストは上/下のテキストの境界に触れるようにレンダリングされます。中央の場合、テキストは上/下のテキストの境界と同じスペースを持つようにレンダリングされます。
このプロパティは 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