TextBox

非推奨を表示

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

テキストボックス は、プレイヤーがテキスト入力を提供できるようにします。 Class.TextButton と同様に、単一のテキストボックスをクリック、タップ、またはゲームパッドの選択でフォーカスに入れることができます。フォーカス中、プレイヤーはキーボードを使用して Class.Toolbar.Text|Text

  • テキストがありませんの場合、PlaceholderText が表示されます。これは、プレイヤーが入力するデータの種類または形式についてのユーザーの誘導を有用に行います。
  • デフォルトでは、ClearTextOnFocus プロパティが有効になり、ClearTextOnFocus がフォーカスされているときにテキストが存在しないことを確認します。これはプレイヤーによって編集可能なテキストではない場合があります。
  • プロパティ MultiLine は、新しい行のキャラクター ( \n ) で複数のテキストを入力できるようにします。

Class.UserInputService.InputBegan と関連するエベントが発生すると、ContextActionService:BindAction() はテキストボックスのキーバインドを尊重し、キープレスイベントが UserInputService.InputBegan にバインドされるのを自動的に防止します。1>Class.UserInputService.InputBegan1> と関連するエベントは

フォーカスステート

TextBox のフォーカスステートを検出し、変更することができます:

  • ダイアログが表示されるときに CaptureFocus を使用して、プレイヤーがテキストボックスを利用可能にするためにクリックする必要がありません。 ContextActionService:BindAction() を使用して、この機能を使用する特定のキーにフ
  • Class.Toolbar:IsFocused()|IsFocused を使用して、特定のテキストボックスがフォーカスされているかどうかを検出できます。あるいは、UserInputService:GetFocusedTextBox() を使用して、テキストボックスがフォーカスされているかどうかをチェックできます。
  • プレイヤーがテキストを入力したとき、FocusLost イベントが発動し、ユーザーが Enter を押してテキストとInputObject を損失したことを示すようにします。モバイルとコンソー
  • ゲームプレイ中に重要な問題が発生した場合は、ReleaseFocus の TextBox を返すことで、プレイヤーのキーボード入力があなたのゲームに戻ります。

テキストエディティング

テキストボックスは、CursorPosition および SelectionStart プロパティを通じて、テキストの選択をサポートします。使用する GetPropertyChangedSignal を使用すると、選択が変更されたことを2> 基本的なク

テキストフィルターに関する通知 ゲームは、カスタムチャットや名前タグなど、プレイヤー間通信をテキストで容易に行うゲームを含む、「 Class.TextService:FilterStringAsync() 」または「 Class.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 をクリックすると、その TextBox.Text プロパティをクリアするかどうかを決定します。

  • 読み取り専用
    複製されていません
    並列読み取り
  • 並列読み取り

    テキストカーソルのオフセットをバイト単位で決めます。-1 がカーソルがありませんの場合。

  • 非表示
    複製されていません
    並列読み取り

    テキストをレンダリングするフォントを決める。

  • 並列読み取り

    テキストをレンダリングするフォントを決める。

  • 並列読み取り

    Class.Toolbar のテキストの行間をスケールします。

  • 並列読み取り

    Class.Toolbar が表示できる最大グラフェム数。

  • 並列読み取り

    「真」を設定すると、テキストボックス内のテキストは複数の行に移動できます。これにより、プレイヤーは入力キーを使用して新しい行に移動できます。

  • 並列読み取り
  • 読み取り専用
    複製されていません
    並列読み取り
  • 並列読み取り

    入力していないテキストに使用されるテキストの色を設定します。

  • 並列読み取り

    入力していないテキストが TextBox に表示されるテキストを設定します。

  • 並列読み取り

    クラス型テキストボックスがリッチテキストフォーマットを使用して TextBox.Text 文字列をレンダリングするかどうかを決定します。

  • 並列読み取り

    テキストの選択の開始位置を決定します。-1 でない場合は、テキストが選択されていません。

  • 並列読み取り

    設定が「True」に設定されている場合、Roblox の内蔵キーボードではなく、プラットフォームのネイティブキーボードに入力されます。

  • 並列読み取り

    UI 要素によって表示される文字列を決定します。

  • 読み取り専用
    複製されていません
    並列読み取り

    オフセットで UI 要素のテキストのサイズ。

  • 並列読み取り

    レンダリングされたテキストの色を決める。

  • 並列読み取り

    ユーザーが Text を変更できるかどうかを決定します。

  • 読み取り専用
    複製されていません
    並列読み取り

    テキストが TextBox の制限内にあるかどうか。

  • 並列読み取り

    テキストをレンダリングするGUIオブジェクトにフィットするかどうかを変更します。

  • 並列読み取り

    オフセットのテキストの行高を決める。

  • 並列読み取り

    テキストストロークの色を決定します (アウトライン)。

  • 並列読み取り

    テキストストロークの透明度を決めます (アウトライン)。

  • 並列読み取り

    レンダリングされたテキストの透明度を決める。

  • この TextBox に表示されるテキストのトリミングを制御します。

  • 並列読み取り

    テキストラップを GUI 要素のスペース内に複数の行にラップし、余分なテキストをカットします。

  • レンダリングされたテキストの横向きに決定します。

  • レンダリングされたテキストの垂直アラインメントを決定します。

GuiObject から継承した プロパティ
  • 並列読み取り

    この UI 要素が入力を沈めるかどうかを決定します。

  • 並列読み取り

    Class.GuiObject のオリジンポイントを決定し、相対的なサイズに対して Class.GuiObject のオリジンポイントを決定します。

  • 子コンテンツに基づいてサイズ変更が発生するかどうかを決定します。

  • 並列読み取り

    Class.GuiObject の背景色を決定します。

  • 並列読み取り

    Class.GuiObject の背景と境界を透明化する。

  • 並列読み取り

    Class.GuiObject ボーダーの色を決定します。

  • 並列読み取り

    Class.GuiObject ボーダーの位置相対を決定します。

  • 並列読み取り

    Class.GuiObject ボーダーのピクセル幅を決定します。

  • 並列読み取り

    親 GUI 要素の外にある子 GUI 要素がレンダリングするべきかどうかを決定します。

  • 読み取り専用
    複製されていません
    並列読み取り

    プレイヤーのマウスが GuiObject 上で積極的に押されているかどうかを決定します。

  • 並列読み取り

    Class.GuiButton がインタラクト可能かどうかを決定します。GuiStateGuiObject が変更されているかどうか。

  • 並列読み取り

    Class.UIGridStyleLayout と一緒に使用されると、UIGridStyleLayout のソートオーダーを制御します。

  • 並列読み取り

    ゲームパッドのセレクターが下に移動すると、GuiObject が選択されます。

  • 並列読み取り

    ゲームパッドのセレクターが左に移動したときに選択される GuiObject を設定します。

  • 並列読み取り

    ゲームパッドのセレクターが右に移動したときに選択される GuiObject を設定します。

  • 並列読み取り

    ゲームパッドセレクターが上に移動すると、GuiObject が選択されます。

  • 並列読み取り

    Class.GuiObject のピクセルとスカラーポジションを決定します。

  • 並列読み取り

    Class.GuiObject が回転する度数を決定します。

  • 並列読み取り

    ゲームパッドで GUI を選択できるかどうかを決定します。

  • ゲームパッドのデフォルトの装飾をオーバーライドします。

  • 並列読み取り

    ゲームパッド UI の選択によって選択された GuiObjects のオーダー。

  • 並列読み取り

    Class.GuiObject のピクセルとスケーラーサイズを決定します。

  • 親のサイズに対応する SizeGuiObject 軸を設定します。

  • 非表示
    複製されていません
    並列読み取り
    非推奨

    Class.GuiObject.BackgroundTransparency|BackgroundTransparency と TextTransparency のミックスプロパティ。

  • 並列読み取り

    Class.GuiObject とその子孫がレンダリングされるかどうかを決定します。

  • 並列読み取り

    他の Class.GuiObject との相対位置で GuiObject がレンダリングされる順序を決定します。

GuiBase2d から継承した プロパティ

方法

  • クライアントにTextBox に集中するように強制します。

  • テキストボックスがフォーカスされている場合は、 true を返し、そうでない場合は false を返します。

  • ReleaseFocus(submitted : bool):void

    クライアントにTextBox のフォーカスを解除するように強制します。

GuiObject から継承した 方法

イベント

GuiObject から継承した イベントGuiBase2d から継承した イベント
  • SelectionChanged(amISelected : bool,previousSelection : GuiObject,newSelection : GuiObject):RBXScriptSignal

    ゲームパッドの選択が移動すると、退出します。または、接続された GuiBase2d または任意の子 GuiObjects 内で変更されます。

プロパティ

ClearTextOnFocus

並列読み取り

TextBox をクリックすると、TextBox.Text プロパティをクリアするかどうかを決定します

ContentText

読み取り専用
複製されていません
並列読み取り

CursorPosition

並列読み取り

CursorPosition は、テキストカーソルのオフセットをバイト単位で決定します。または、TextBox が現在編集されていない場合 -1 は、 Text プロパティの開始位置を表します。SelectionStart プロ

このプロパティのユニットは バイト であり、多くのユーンコード文字は 1バイト以上 になります。たとえば、「Hello👋」 – “Hello” に続いて、手を振った手のサイン – カーソルポジションが 10 ではなく 7 になります。これは、エモジが 4 バイト

コードサンプル

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)
非表示
複製されていません
並列読み取り

フォントプロパティは、UI 要素がテキストをレンダリングするために使用できるいくつかのプリディファインド Font.Font|フォント の 1つを選択します。いくつかのフォントには、強調、イタリック、および/またはライトバリアントがあります (フォントの重量やスタイルのプロパティはありません)。

「レガシー」フォントを除き、各フォントは 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 プロパティは、Font プロパティと似ていますが、Font 枚数に存在しないフォントを設定できます。

このプロパティは、TextBox.Font プロパティと同期されています。FontFace を設定すると、Font は対応する枚数の値に設定されます。また、一致しない場合は Enum.Font.Unknown に設定されます。

LineHeight

並列読み取り

クラスターのサイズは、フォントのサイズの複数である行の高さを制御します。スペース間を拡大/縮小することで、テキストの行間のサイズを変更します。デフォルトは 1.0 から 3.0 です。

MaxVisibleGraphemes

並列読み取り

このプロパティは、TextBox に表示される最大グラフェム数 (またはテキストのユニット) を制御します。TextBox.PlaceholderText または TextBox.Text を表示しているかどうかにかかわらず。

プロパティを変更すると、表示可能なグラフェムの位置やサイズは変更されません - レイアウトは、すべてのグラフェムが表示されているときのように計算されます。

プロパティを -1 に設定すると、制限が無効になり、TextBox.Text の全体が表示されます。

MultiLine

並列読み取り

「真」を設定すると、テキストボックス内のテキストは複数の行に移動できます。これにより、プレイヤーは入力キーを使用して新しい行に移動できます。

OpenTypeFeatures

並列読み取り

OpenTypeFeaturesError

読み取り専用
複製されていません
並列読み取り

PlaceholderColor3

並列読み取り

入力していないテキストに使用されるテキストの色を設定します。

PlaceholderText

並列読み取り

入力していないテキストが TextBox に表示されるテキストを設定します。

RichText

並列読み取り

このプロパティは、TextBox がリッチテキストフォーマットを使用して TextBox.Text 文字列をレンダリングするかどうかを決定します。リッチテキストは、シンプルなマークアップタグを使用して、文字列の下の強調、イタリック、特定の色などをスタイルに合わせて構成します。

リッチテキストを使用するには、TextBox.Text 文字列にフォーマットタグを含めます。

注意: Class.Toolbar にこのプロパティが有効になっていると、ボックスのフォーカスが合致すると、ユーザーは Class.Toolbar の完全なXML文字列を編集およびインタラクトできます。フォーカスが失われると、テキストは自動的にタグをリッチテキストで処理し、レンダリングします。

SelectionStart

並列読み取り

テキスト選択の開始位置を決定します。または -1 です。TextBox にテキストの範囲がありませんので、値は -1 または CursorPosition と同じです。このプロパティは、Class.Toolbar.CursorPosition または Class.Toolbar.CursorPositio終了 の開

コードサンプル

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

並列読み取り

設定が「True」に設定されている場合、Roblox の内蔵キーボードではなく、プラットフォームのネイティブキーボードに入力されます。

Text

並列読み取り

テキストプロパティは、UIエレメントが表示するコンテンツを決定します。視覚プロパティは、 TextBox.TextColor3

絵文字 (たとえば、😃) や他のシンボルをレンダリングできます。これらの特殊なシンボルは TextBox.TextColor3 プロパティに影響されません。これらは Script および LocalScript オブジェクト、およびプロパティウィンドウ内のフィールドに貼り付

このプロパティには、新行文字が含まれる場合がありますが、プロパティウィンドウ内で新行文字を入力することはできません。同様に、このプロパティにはタブ文字が含まれる場合がありますが、代わりにスペースとして表示されます。

コードサンプル

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

読み取り専用
複製されていません
並列読み取り

[テキストの境界] プロパティは、オフセットの読み取りで実際のテキストのサイズを反映します。つまり、テキストをレンダリングしたオクジェクトにフィットするために、テキストを正方形に拡大/縮小する必要があります。

使用する TextService:GetTextSize()TextBox.FontTextBox.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.FontTextBox.TextSize および 2>Class.Toolbar.TextTransparency2> は、テ

プレイヤーに簡単に読み取れるテキストが重要です!迷彩を避けて、白、グレー、または黒など、少し-to-no saturationのある色を選択してください。UI 要素の背景には、TextBox.BackgroundColor3 を使用して、テキストと 3D 世界をコント

コードサンプル

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

読み取り専用
複製されていません
並列読み取り

テキストが TextBox の制限内にあるかどうか。

TextScaled

並列読み取り

TextScaled を使用する代わりに、AutomaticSize を使用することをお勧めします。これは、最高のビジュアル結果を可能にする新しいメソッドで、UI のサイズをダイナミックにサイズ変更できます。

TextScaled プロパティは、テキストが UI 要素の全体を満たすようにスケールされているかどうかを決定します。これを有効にすると、 TextBox.TextSize は無視され、 TextBox.TextWrapped が自動的に有効になります。このプロパティは、BillboardGuis

このプロパティを画面スペース 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 オブジェクトはそのテキストに対応するように拡張されます

両方のオートサイズとテキストスケールを同時に使用すると、オートサイズがオフのときよりも大きなスケールオフの差が発生する可能性があります。

コードサンプル

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

並列読み取り

TextSize プロパティは、1行のレンダリングテキストのオフセットの高さを決定します。ユニットはオフセットであり、ポイントではありません (これは、ほとんどのドキュメントエディタプログラムで使用されている)。「レガシー」フォントはこのプロパティを持っていません。

コードサンプル

"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.TextColor3 およびTextBox.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 は、テキストストロークのビジュアルプロパティを決定します。

テキストストロークは、通常のテキストと同じく、1ピクセルオフセットの +/- 1 方向の 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.FontTextBox.TextSize および TextBox.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

並列読み取り

この TextBox に表示されるテキストのトリミングを制御します。

TextWrapped

並列読み取り

有効にすると、このプロパティは GUI 要素のスペース内の複数の行にテキストをレンダリングし、TextBox.TextBounds は GUI 要素の GuiBase2d.AbsoluteSize を超えることはありません。

これは、長いテキストの行を複数の行に分割することで達成されます。行の分割は白紙を好むことがあります。長い未完成のワードがエレメントの幅を超えると、そのワードは複数の行に分割されます。

次の行の空白がテキストの垂直高度 (TextBox.TextBounds の Y コンポーネント) を元素の垂直高度 (GuiBase2d.AbsoluteSize の Y コンポーネント) を超えると、その行は完すべてにレンダリングされません。

コードサンプル

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

並列読み取り

TextXAlignment は、UI 要素のスペース内のテキストの横向きに準拠します (X 軸) 。これは、 CSS テキストアルインコンプリートプロパティと同様に機能します (左、右、中央の値がありません)。For Left と Right の場合、テキストは左/右のテキスト境界に触れるようになります (センターではな

このプロパティは、TextBox.TextYAlignment と組み合わせて、両方の軸にテキストの配置を完全に決定するために使用されます。このプロパティは、TextBox.TextBounds および TextBox.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 軸) は、UI 要素のスペース内のテキストのレンダリングを決定します。トップとボトムの場合、テキストは上/下のテキストの境界に触れるようにレンダリングされます。中央の場合、テキストは上/下のテキストの境界と同じスペースを持つようにレンダリングされます。

このプロパティは、TextBox.TextXAlignment と組み合わせて、両方の軸にテキストの配置を完全に決定するために使用されます。このプロパティは、TextBox.TextBounds および TextBox.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

テキストボックスがフォーカスされている場合は、 true を返し、そうでない場合は false を返します。


戻り値

ReleaseFocus

void

クライアントにテキストボックスのフォーカスを解除するよう強制します。submitted パラメータを使用すると、enterPressed パラメータを上書きできます。TextBox.FocusLost イベントで。

このアイテムは、オンラインモードで機能するために LocalScript と使用する必要があります。

以下に示すコードは、選択後にクライアントが 'Texture' を 5 秒間フォーカス解除するように強制します:


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

上の例は、TextBox の子としてローカルスクリプトにあることを仮定しています。

パラメータ

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 から離れると、クライアントのフォーカスが TextBox に移動すると、ファイアが発生します - 通常、クライアントが TextBox の外にクリック/タップするときに発生します。これは、クライアントがユーザーにフォーカスを合わせるとも発生します。

Class.Toolbar.Focused と一緒に使用すると、テキストボックスのフォーカスを取得したり失ったりするときに追跡できます。

また、UserInputService.TextBoxFocused および UserInputService.TextBoxFocusReleased を参照して、ユーザー入力サービスのサービスに依拠する関連する機能についても参照してください。

このイベントは、LocalScript 内でのみ発動します。

パラメータ

enterPressed: bool

クライアントがEnter を押してフォーカスを失うかどうかを示すブールーン ( true ) または not ( false ) を指します。

inputThatCausedFocusLoss: InputObject

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

クライアントが TextBox のフォーカスを獲得すると、この時点で、Class.Toolbar がファイアをオンにします - 通常、クライアントがテキストボックスをクリック/タップしてテキストの入力を開始するときです。これは、Class.Toolbar がユーザーにフォーカスを合わせることでも発動します。

Class.Toolbar.FocusLost と一緒に使用すると、TextBox のフォーカスを取得したり失ったりするときに追跡できます。

また、UserInputService.TextBoxFocused および UserInputService.TextBoxFocusReleased を参照して、ユーザー入力サービスのサービスに依拠する関連する機能についても参照してください。

このイベントは、LocalScript 内でのみ発動します。


コードサンプル

Focus

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

ReturnPressedFromOnScreenKeyboard