Untuk membangun antarmuka pengguna dari template UXML, Anda harus memuat template pertama ke dalam VisualTreeAsset
:
var template = EditorGUIUtility.Load("path/to/file.uxml") as VisualTreeAsset;
atau lebih langsung:
var template = AssetDatabase.LoadAssetAtPath<VisualTreeAsset>("path/to/file.uxml");
Anda kemudian dapat membangun pohon visual yang mewakili ini dan melampirkan ke elemen induk:
template.CloneTree(parentElement, slots);
Dalam pernyataan di atas, elemen <UXML>
dalam template tidak diterjemahkan keVisualElement
. Sebaliknya, semua anak-anaknya melekat pada elemen yang ditentukan oleh parentElement
.
Setelah template disaat, Anda dapat mengambil elemen khusus dari pohon elemen visual dengan UQuery: implementasi Unity dari JQuery / Linq.
Sebagai contoh, kode berikut menunjukkan cara membuat file EditorWindow
baru dan memuat file UXML sebagai kontennya:
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.CloneTree(null);
w.rootVisualElement.Add(ui);
}
void OnGUI () {
// Nothing to do here, unless you need to also handle IMGUI stuff.
}
}