コントロールとは、ボタン、ラベル、チェックボックスなどのグラフィカルユーザーインターフェースの要素のことです。コントロールのビジュアルと、コントロールのインタラクションを操作するためのスクリプト化されたロジックが含まれます。
In UI Toolkit, a control combines a visual elements with scripting into a template that you can use inside a UI panel.
コントロールは、単一のビジュアル要素で構成される場合と、複数のビジュアル要素の組み合わせで構成される場合があります。
For example, the Toggle control as shown below, contains three elements:
トグルコントロールの実装では、コントロールの動作を定義します。トグルの状態が true か false かの内部値を持っています。このロジックは、値が変化するときに、チェックマーク画像の可視性を変化させます。
To use a control in a UI, add it to the Visual Tree. You can add the control through a C# script, UXML, or in the UI Builder.
The following C# code example adds a Button control to an existing visual tree.
var newButton = new Button("Click me!");
rootVisualElement.Add(newButton);
UI 階層にコントロールを追加する時には、レイアウトエンジン が自動的にサイズと位置を処理します。また、ビジュアル要素のサイズと位置のオーバーライド も可能です。
You can define the look of visual elements with one of the following methods:
コントロールはインタラクティブで、変更可能な値を表します。例えば、FloatField
は float 値を表します。C# スクリプトの作成によって、コントロールの値を変更したり、コールバックを登録したり、データバインディングを適用したりすることが可能です。
コントロールの値にアクセスしたり、コントロールの値を変更するには、その value
プロパティを使用します。
The following C# example creates a Toggle control and a Button control. When you click the button, the value of the toggle flips.
// トグルを作成してコールバックを登録
m_MyToggle = new Toggle("Test Toggle") { name = "My Toggle" };
rootVisualElement.Add(m_MyToggle);
// トグルの値を反転するボタンを作成
Button button01 = new Button() { text = "Toggle" };
button01.clicked += () =>
{
m_MyToggle.value = !m_MyToggle.value;
};
rootVisualElement.Add(button01);
For more information about the properties of a specific control, see the UI Toolkit controls reference.
value
プロパティを持つコントロールは、値が変更されるとイベントを送信します。このイベントを受信するコールバックを登録することができます。
The following code example creates a Toggle control and registers a callback:
// Create a toggle and register callback
m_MyToggle = new Toggle("Test Toggle") { name = "My Toggle" };
m_MyToggle.RegisterValueChangedCallback((evt) => { Debug.Log("Change Event received"); });
rootVisualElement.Add(m_MyToggle);
コールバックとイベントの詳細は、イベントの処理 を参照してください。
コントロールはオブジェクトやシリアル化されたプロパティにバインドできます。例えば、FloatField コントロールを MonoBehaviour
に属するパブリック float 変数にバインドすることができます。コントロールがプロパティにバインドされると、自動的にプロパティの値が表示されます。コントロールに変更を加えると、プロパティの値が更新されます。
Similarly, when the property value changes via code, the UI displays the updated value. This two-way connection is useful when creating custom Inspector windows.
See Binding for information on data binding.
Not all controls are bindable. For a list of built-in controls and whether they support binding, see UI Toolkit controls reference.
Unity includes a large range of standard controls, such as labels, text fields, and toggles.
You can also create custom controls, and implement custom logic for user interface elements. For more information, see Custom controls.