1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Unity】UIToolkitのIntegerFieldで、スクリプトから入力を空にしたい

Posted at

6000.2.10f1でClearValueが実装された

UIToolkitにはIntegerFieldやFloatFieldなど、数値を入力するためのInputFieldが用意されている
これらは通常のTextFieldと同様に、空欄時に表示されるPlaceholderを表示できる
しかし、これまではスクリプトから空欄にすることができず、Placeholderを表示することができなかった

6000.2.10f1でClearValueが実装された

6000.2.10f1で、親クラスとなる TextInputBaseField<T>へClearValueが追加された
これは、InputFieldを空欄にするためのメソッドで、そのInputFieldで設定されたデフォルト値を無視して空欄にできる

試す

スクリーンショット 2025-12-04 20.55.19.png
UIBuilderで、動作確認用のUIを作成した

まず、以下のスクリプトでClearValueを使わない場合を検証する

public void CreateGUI()
{
    // Each editor window contains a root VisualElement object
    VisualElement root = rootVisualElement;

    // Instantiate UXML
    VisualElement labelFromUXML = m_VisualTreeAsset.Instantiate();
    var textField = labelFromUXML.Q<TextField>("textField");
    var integerField = labelFromUXML.Q<IntegerField>("integerField");
    var button = labelFromUXML.Q<Button>();
    button.clickable.clicked += () =>
    {
        textField.value = default;
        integerField.value = default;
    };
    root.Add(labelFromUXML);
}

適当に入力して、Clearボタンを押下する
スクリーンショット 2025-12-04 20.56.50.png

すると、TextFieldはPlaceholderが表示されるが、IntergerFieldはデフォルト値の0が表示される
スクリーンショット 2025-12-04 20.57.17.png

これは割と当然で、intのdefalutは0なので0が表示される
intergerField.valueの方はintなので、空欄にするすべがない
そこで、以下のようにClearValue()を使うよう修正する

public void CreateGUI()
{
    // Each editor window contains a root VisualElement object
    VisualElement root = rootVisualElement;

    // Instantiate UXML
    VisualElement labelFromUXML = m_VisualTreeAsset.Instantiate();
    var textField = labelFromUXML.Q<TextField>("textField");
    var integerField = labelFromUXML.Q<IntegerField>("integerField");
    var button = labelFromUXML.Q<Button>();
    button.clickable.clicked += () =>
    {
        textField.value = default;
        integerField.ClearValue();
    };
    root.Add(labelFromUXML);
}

適当に入力して、Clearボタンを押下する
スクリーンショット 2025-12-04 21.02.36.png

するとIntegerValueも空欄になり、Placeholderが表示される
スクリーンショット 2025-12-04 21.03.21.png

参考

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?