UXML ファイルから UI をビルドするには、まず ファイルを VisualTreeAsset
にロード してから、Instantiate()
を使用して親なしでインスタンス化し新しい TemplateContainer
を作成するか、CloneTree(parent)
を使用して、親の中にクローンを作成します。
UXML がインスタンス化されると、UQuery を使ってビジュアルツリーから特定の要素を取得することができます。
以下の例では、カスタムエディターウィンドウを作成し、そのコンテンツとして UXML ファイルをロードします。
using UnityEditor;
using UnityEngine;
using UnityEngine.UIElements;
using UnityEditor.UIElements;
public class MyWindow : EditorWindow {
[MenuItem ("Window/My Window")]
public static void ShowWindow () {
EditorWindow w = EditorWindow.GetWindow(typeof(MyWindow));
VisualTreeAsset uiAsset = AssetDatabase.LoadAssetAtPath<VisualTreeAsset>("Assets/MyWindow.uxml");
VisualElement ui = uiAsset.Instantiate();
w.rootVisualElement.Add(ui);
}
}